ดัชนีคอมโพสิต (Composite Index) คือดัชนีที่ใช้กับหลายคอลัมน์พร้อมกัน ซึ่งเรียกอีกอย่างหนึ่งว่าดัชนีหลายคอลัมน์ (Multiple-column Index)
คุณสมบัติหลัก
- MySQL อนุญาตให้สร้างดัชนีคอมโพสิตได้สูงสุด 16 คอลัมน์
- ตัวเพิ่มประสิทธิภาพการสืบค้น (Query Optimizer) ใช้ดัชนีคอมโพสิตสำหรับคิวรีที่ทดสอบคอลัมน์ทั้งหมดในดัชนี
- ยังสามารถใช้ได้กับคิวรีที่ทดสอบคอลัมน์แรก คอลัมน์แรกและที่สอง ตามลำดับไปเรื่อยๆ
- หากระบุลำดับคอลัมน์ในการกำหนดดัชนีถูกต้อง ดัชนีคอมโพสิตเพียงตัวเดียวสามารถเพิ่มความเร็วให้กับหลายประเภทของคิวรีบนตารางเดียวกันได้
การสร้างดัชนีคอมโพสิต
สามารถสร้างดัชนีคอมโพสิตขณะสร้างตารางได้ดังนี้:
CREATE TABLE table_name ( c1 data_type PRIMARY KEY, c2 data_type, c3 data_type, c4 data_type, INDEX index_name (c2, c3, c4) );
ในตัวอย่างนี้ ดัชนีคอมโพสิตประกอบด้วย 3 คอลัมน์คือ c2, c3 และ c4
นอกจากนี้ยังสามารถเพิ่มดัชนีคอมโพสิตลงในตารางที่มีอยู่แล้วได้ด้วยคำสั่ง CREATE INDEX:
CREATE INDEX index_name ON table_name(c2, c3, c4);
การใช้งานดัชนีคอมโพสิต
หากมีดัชนีคอมโพสิตบน (c1, c2, c3) จะมีความสามารถในการค้นหาดัชนี (Indexed Search) สำหรับการรวมคอลัมน์ดังต่อไปนี้:
(c1) (c1, c2) (c1, c2, c3)
หมายเหตุ: ลำดับของคอลัมน์ในดัชนีมีความสำคัญมาก ดัชนี (c1, c2, c3) จะไม่ช่วยให้คิวรีที่ใช้ WHERE c2 = 'x' หรือ WHERE c3 = 'x' ได้รับประโยชน์ เพราะไม่ได้เริ่มจากคอลัมน์แรกของดัชนี