Tài liệu MySQL thực hiện rất tốt việc giải thích cách hoạt động của các chỉ mục nhiều cột tại đây .
Nói chung, chỉ mục có thể được sử dụng cho một where mệnh đề khi một số cột ở ngoài cùng bên trái bên của chỉ số có điều kiện bình đẳng. where mệnh đề sử dụng các cột sau:
- c1, c2
- c1, c2, c3, c4
- c1, c2
- c1, c2, c5
Bất kỳ chỉ mục nào bắt đầu bằng các cột c1 và c2 thường sẽ được sử dụng cho các truy vấn này. MySQL có thể áp dụng các điều kiện khác để sử dụng chỉ mục, chẳng hạn như tính chọn lọc. Đó là, nếu c1 và c2 có các giá trị không đổi (ví dụ) thì việc sử dụng chỉ mục sẽ không có lợi cho truy vấn.
Để tối ưu hóa tất cả các kết hợp này, bạn có thể tạo hai chỉ mục:c1, c2, c3, c4 và c2, c1, c5 . Lý do hoán đổi c1 và c2 trong chỉ mục thứ hai là do đó bạn có thể xử lý các truy vấn có điều kiện trên c2 nhưng không phải c1 , cũng như ngược lại.