MyISAM vs InnoDB ทั้ง 2 รูปแบบนี้เค้าเรียกกันว่า Storage Engine นั่นเอง ซึ่งก็คือ ตัวเอาไว้จัดการตาราง กำหนดลักษณะของการจัดเก็บโครงสร้างภายในฐานข้อมูล เรามาดูความแตกต่างกัน ในแต่ละรูปแบบกันเลยละกันครับ
แบบ MyISAM
- จะสนับสนุนในเรื่องของการบีบอัดตาราง
- แบบนี้จะสามารถกำหนด Key ภายในตารางเดียวกันได้สูงสุดถึง 64 Keys และ กำหนดความยาวของแต่ละ Keys ได้ 1024 bytes
- สนับสนุนการค้นหาแบบ full-text-searching คือ ค้นหาแบบข้อความเต็มๆ ยาวๆ ได้นั่นเอง
แบบ InnoDB
- สนับสนุนเรื่องความปลอดภัยของข้อมูล โดยใช้คำสั่งจำพวก Rollback ได้
- สามารถ Savepoint ได้
- กู้ข้อมูลแบบอัตโนมัติ กรณีเครืองดับฉุกเฉิน เมื่อเปิดขึ้นมาอีกครั้งข้อมูลก็จะยังอยู่
- สนับสนุนการสร้าง Foreign Keys ก็คือที่เรามักใช้กันในเรื่องของการเชื่อมต่อตารางที่มากกว่า 1 ตารางนั่นแหละ
- สนับสนุนการทำ Row level locking ก็คือ ถ้ากรณีมีการ update ข้อมูลลงในตารางอยู่ การทำงานอื่นๆก็จะยังไม่สามารถ update ได้ ต้องรอเป็นคิวๆไป
จากที่ดูไปทั้ง 2 รูปแบบ อาจจะพอสรุปได้คร่าวๆ ตามนี้นะครับ MyISAM จะเน้นเรื่องของการทำความเร็วให้ฐานข้อมูล และการบีบอัดข้อมูลเพื่อให้ฐานข้อมูลมีความเล็กลง เหมาะสมกับการค้นหาที่รวดเร็วนั่นเอง
ส่วนแบบ InnoDB ก็จะสนับสนุนไปทางด้านความปลอดภัยของข้อมูลซะส่วนใหญ่ สามารถทำ Rollback กลับได้เนื่องจากมีจุด Savepoint เหมาะสมกับงานที่ต้องการความปลอดภัยในด้านฐานข้อมูล ส่วนความเร็วถ้าดูๆไปแล้วก็น่าจะเป็นรองเจ้า MyISAM อยู่บ้าง แต่ถ้าคิดกันยาวๆแบบ InnoDB ก็น่าใช้กว่ากันในมุมมองของ admin นะครับ
ความเห็นล่าสุด