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.