Trước tiên xem Composite Index là gì:
- Composite index là index dùng trên nhiều cột.
- Còn gọi là multiple-column index.
- MySQL cho phép tạo composite index tối đa 16 cột.
- Query optimizer dùng composite index cho truy vấn test tất cả cột trong index.
- Cũng dùng cho truy vấn test cột đầu tiên, hai cột đầu, v.v.
- Nếu cột chỉ định đúng thứ tự trong định nghĩa index, một composite index đơn lẻ có thể tăng tốc某些 loại truy vấn trên cùng table.
Xem cách tạo composite index khi tạo table:
Truy vấn
CREATE TABLE table_name (
c1 data_type PRIMARY KEY,
c2 data_type,
c3 data_type,
c4 data_type,
INDEX index_name (c2,c3,c4)
);
Trong câu lệnh trên, composite index gồm 3 cột: c2, c3, c4.
Composite index cũng có thể thêm vào table hiện có dùng câu lệnh CREATE INDEX:
Truy vấn
CREATE INDEX index_name ON table_name(c2,c3,c4);
Xem cách làm nhanh truy vấn chậm dùng Composite Index:
- Tốc độ thực thi truy vấn phụ thuộc vào duration.
- Dùng index hints kích hoạt tốc độ truy vấn.
- MySQL optimizer có thể dùng để quyết định đúng khi chọn index.
- Chỉ nên làm trên static queries.
- Nếu thêm truy vấn mà mệnh đề
WHEREthay đổi, hiệu năng sẽ tệ hơn, vì không để optimizer làm việc. - Câu lệnh
FORCE INDEXhoạt động nhưUSE INDEX (index_list), thêm vào đó table scan được coi là tác vụ tốn kém. - Table scan chỉ cần khi không có cách dùng named index tìm hàng trong table.