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 นะครับ

 

คอร์สเรียนทั้งหมด

อ่านบทความอื่นเพิ่มเติม