Có thể bạn cần xem
Chú ý Thuật toán tối ưu việc gộp index có 1 vài giới hạn dưới đây:
Nếu truy vấn có 1 mệnh đề WHERE phức tạp với các toán tử AND/OR nhiều lớp và MySQL không chọn được cách tối ưu, hãy thử 1 vài cách biến đổi logic sau:
(x AND y) OR z => (x OR z) AND (y OR z) (x OR y) AND z => (x AND z) OR (y AND z)
Việc gộp index không áp dụng cho index full-text
Video Mô Hình Marketing In-house: Centralize vs Decentralize
Ta sẽ thấy ở kết quả của EXPLAIN, phương thức gộp sẽ xuất hiện index_merge ở cột type. Trong trường hợp này, cột key sẽ chứa danh sách các index được sử dụng và key_len sẽ cho thấy danh sách các key dài nhất cho index đó Phương thức gộp index có 1 vài thuật toán, thuật toán này sẽ xuất hiện ở cột Extra của kết quả EXPLAIN:
Sử dụng intersect(…)
Sử dụng union(…)
Sử dụng sort_union(…)
Các phần dưới đây sẽ mô tả chi tiết hơn về các thuật toán. Trình tối ưu sẽ chọn giữa các index khác nhau có thể được cho thuật toán gộp và các các phương thức khác dựa trên việc ước lượng tối ưu của các lựa chọn có thể thực hiện. Để lựa chọn thuật toán thực hiện, sẽ có các giá trị index_merge, index_merge_intersection, index_merge_union, and index_merge_sort_union được thiết lập ở biến hệ thống optimizer_switch. Mặc định tất cả các thuật toán được chọn, để chỉ chọn 1 thuật toán bạn có thể tắt index_merge sang off và bật chỉ 1 giá trị thuật toán sang on.
Người viết: Ngồi code vỉa hè
TopDev via Viblo