Index และการจัดลำดับของ คอลัมน์ ใน Index บนฐานข้อมูล MySQL

ลองดูข้อมูลตัวอย่างนี้ ตารางนี้มีข้อมูลทั้งหมด 40 แถว และเป็นข้อมูล department ทั้งหมด 4 รายการ (ในรูปไม่ได้แสดงทั้งหมดนะครับ เพราะมันจะยาวไป)
.png)
SELECT * FROM app_category WHERE type='department'
อธิบายง่ายๆว่าเอาข้อมูลที่มี type เท่ากับ department ออกมา ผลการ Query จะเป็นไปตามตารางด้านล่าง
.png)
ต่อมาเรามาลองใส่ Index ให้กับตารางสัก 2 คอลัมน์ดู ตามรูปเลย คือใส่ให้กับ type และ category_id
.png)

.png)
.png)



- การทำ Index ให้กับแต่ละคอลัมน์แยกกัน ช่วยให้การค้นหาเฉพาะคอลัมน์ใดคอลัมน์หนึ่งที่เป็น Index สามารถใช้ประโยชน์จาก Index ได้อย่างเต็มที่
- ในกรณีที่ Index แยกกัน และมีการค้นหาข้อมูลจากคอลัมน์ที่เป็น Index มากกว่า 1 ตอลัมน์ จะยังคงใช้งาน Index ได้อยู่ แต่เป็นการใช้งาน Index จากทุกคอลัมน์รวมกัน
- ในกรณีที่มีการรวมคอลัมน์ทั้งหมดเป็น Index รายการเดียวกัน การค้นหาจากทุกคอลัมน์ที่เป็น Index พร้อมกันจะให้ประสิทธิภาพสูงที่สุด
- เรายังสามารถใช้งาน Index กับคอลัมน์ลำดับแรกสุดได้ในกรณีที่มีการค้นหาเฉพาะคอลัมน์รายการแรก แต่การค้นหาในคอลัมน์หลัง Index จะไม่มีการทำงาน