ปัญหาพบบ่อยเมื่อ Web Application เริ่มมีผู้ใช้งานเพิ่มขึ้นคือการค้นหาข้อมูลที่ช้าลงอย่างเห็นได้ชัด การทำ Database Indexing จึงเป็นกุญแจสำคัญที่นักพัฒนาสาย Web Dev ต้องเข้าใจ
1. ทำไม B-Tree Index ถึงช่วยให้การ Query เร็วขึ้น?
โดยทั่วไป Relational Database จะใช้โครงสร้างแบบ B-Tree เพื่อลดเวลาค้นหาจาก O(N) ให้เหลือเพียง O(log N) ทำให้ระบบไม่ต้องทำ Table Scan ทั้งหมด
2. ข้อควรระวังในการเลือกใช้ Composite Index
การสร้าง Index บนหลาย คอลัมน์ (Composite Index) จำเป็นต้องคำนึงถึงลำดับคอลัมน์จากซ้ายไปขวา (Leftmost Prefix Rule) เสมอ:
- วางคอลัมน์ที่มีความละเอียดข้อมูลสูง (High Cardinality) ไว้ลำดับแรก
- หลีกเลี่ยงการสร้าง Index บนคอลัมน์ที่มีการอัปเดตบ่อย เพื่อลด overhead ตอน
WRITE/UPDATE - ใช้ Covered Index เมื่อต้องการดึงค่าเฉพาะคอลัมน์ที่อยู่ใน Index โดยไม่ต้องอ่าน Data Page
⚠️ ข้อควรจำ
การใส่ Index มากเกินไปไม่ได้ดีเสมอไป เพราะจะส่งผลกระทบต่อประสิทธิภาพในการบันทึกข้อมูล (Insert/Update/Delete) ให้ช้าลง

