Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดัชนีคอมโพสิต (Composite Index) ใน MySQL

ดัชนีคอมโพสิต (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' ได้รับประโยชน์ เพราะไม่ได้เริ่มจากคอลัมน์แรกของดัชนี