StepCoding

ทำความรู้จักกับ Index

อ่าน [2039] หมวดหมู่: โครงสร้างต่าง ๆ ของ MySQL

Index เป็นระบบพิเศษที่ฐานข้อมูล ใช้เพื่อปรับปรุงประสิทธิภาพทั้งหมดของมัน โดยการกำหนด index ในตารางข้อมูล table จะเป็นการบ่งบอก MySQL ให้ความสนใจเป็นพิเศษใน field ที่กำหนดให้เป็น index

การกำหนด index นั้นมันจะช่วยปรับปรุงความเร็วในการอ่านข้อมูลจาก [storng]database แต่มันจะทำงานช้าในกรณีที่เปลี่ยนแปลงข้อมูลใน database (เนื่องจากข้อมูลที่เปลี่ยนแปลงหรือถูกเพิ่มเข้ามาจะต้องถูกบันทึกใน index ทุกครั้ง)

เราควรจะกำหนด index ให้กับ field ที่

  • ถูกนำไปใช้ในการกำหนดเงื่อนไขในการ query ด้วยคำสั่ง where บ่อย ๆ
  • ถูกนำไปใช้ในการเรียงข้อมูลในการ query ด้วยคำสั่ง order by บ่อย ๆ
  • มีค่าที่แตกต่างกันเป็นส่วนมาก (field ที่มีค่าเหมือน ๆ กัน หรือซ้ำกันมาก ๆ ไม่ควรจะนำมากำหนด index
  • ถูกนำไปใช้ในการ JOIN บ่อย ๆ

MySQL แบ่งชนิดของ index ออกเป็นประเภทต่าง ๆ เช่น INDEX และ UNIQUE (ซึ่งเป็นการกำหนดว่า field นั้น ๆ จะต้องมีค่าที่ไม่ซ้ำกันเลย) และ PRIMARY KEY (มีความหมายเหมือนกับ UNIQUE แต่เป็นการกำหนดว่า field นี้เป็น key หลักของตารางข้อมูล) และ FULLTEXT

ผู้สนับสนุน