เมื่อวันที่ 1 ธันวาคม 2551 ที่ผ่านมา MySQL AB ได้ทำการประกาศสถานะ Generally Available (GA) ให้กับ MySQL 5.1 เป็นที่เรียบร้อยแล้ว โดยที่ในรุ่นนี้จะมีความสามารถดังต่อไปนี้
- Table and Index Partitioning
การแบ่งแยกการเก็บข้อมูลในตารางไว้ได้หลาย ๆ ที่ ตามเงื่อนไขที่กำหนด(different portions of a table are stored as separate tables in different locations) ซึ่งตัวนี้เป็นสิ่งที่หลาย ๆ คนรอคอย เพราะช่วยกระจายตัวข้อมูลใน table ที่ใช้อยู่บ่อย ๆ ไปไว้ใน Hard Drive คนละตัวกัน ซึ่งช่วยให้กระจายการทำงานของ I/O ได้ แต่ก็ต้องแลกกับการ Backup ที่ยากขึ้นด้วยเช่นกัน - Row-Based and Hybrid Replication
การทำ replication บน MySQL ก่อนหน้านี้จะเป็น statement-based replication คือการเก็บ statement ใน bin-log แล้วส่งจาก master ไปยัง slave ให้ slave ทำงานตามไปด้วย แต่ row-based replication เป็นการเก็บ statement ที่จะส่งจาก master ไป slave ชื่อที่เรียกว่า event ลงใน bin-log แล้วส่งเฉพาะส่วนที่เป็นผลของข้อมูลในตารางนั้น ๆ ไปให้กับ slave แทน (ส่วนที่ถูกแก้ไขนั้นแหละ) ทำให้ slave ไม่ต้องทำงานตามที่ master ไปเสียทุกอย่าง ทำเพียงแต่รับผลการเปลี่ยนแปลงจาก master เท่านั้น แต่ก็สามารถเลือกทำแบบ mixed ได้เช่นกัน - Plugin API and Pluggable storage engine API
เขียน Plugin เพิ่มได้ รู้สึกว่าตอนนี้ตัว plugin full-text parsers ก็เป็นตัวอย่างหนึ่งในการสร้าง Plugin API เหมาะมากในอนาคต ที่จะระบบตัดคำไทยใน MySQL เพื่อทำ full-text search (ผมไม่แน่ใจว่ามีใครทำไปแล้วหรือยัง) - Event scheduler
เป็นการตั้ง schedule job แบบเดียวกับการทำ crontab (cron job) ใน UNIX นั้นเอง แต่อันนี้ทำในระดับ DBMS เลยไม่ต้องมี App ตัวอื่น ๆ มามีส่วนเกี่ยวข้องเหมาะสำหรับทำ report table หรือ log table ที่ต้องมีการ clear ข้อมูลเป็นประจำ - Server log tables
- Upgrade program
- MySQL Cluster
ใน MySQL 5.1 ได้ทำการแยกสายการพัฒนาออกมาเป็นอีกรุ่นหนึ่งของ MySQL ไปเลย - Backup of tablespaces
- Improvements to INFORMATION_SCHEMA
- XML functions with XPath support
- Load emulator
อ้างอิงจาก http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
ใน MySQL 5.1 ส่วนที่น่าสนใจจริง ๆ คงเป็นเรื่อง Table and Index Partitioning, Row-based replication, Plugin API และ Event Scheduler ที่ช่วยให้การทำงานหลาย ๆ อย่างง่ายขึ้นครับ
ย้อนกลับไปนิดนึง สำหรับบางคนที่ยังไม่รู้เลยว่า MySQL 5.0 มันทำอะไรได้บ้างนั้นตัว MySQL 5.0 นั้นสามารถทำ Stored procedures, Views (แต่ทำ cache ไม่ได้), Cursors, XA transactions และ Triggers
โดยในรุ่นต่อไป MySQL 5.2 แต่จากที่ดู ๆ ไปแล้วเนี่ย คาดว่าจะเป็น 6.0 มากกว่านะ เพราะเจ้า MySQL 5.2 ในเว็บ MySQL AB มันหายไปแล้ว
ซึ่งในรุ่นต่อไปก็คงได้เวลาของ Falcon ซึ่งเป็น Transaction Storage Engine ที่คาดการณ์กันไว้ว่าจะมาแทน InnoDB ที่โดน Oracle ซื้อไป คงต้องดูกันอีกทีว่าเจ้า Falcon จะมีดีแค่ไหน รอดูกันต่อไปครับ