Tôi có một bảng với chỉ mục nhiều màu và tôi nghi ngờ về việc sắp xếp đúng các chỉ mục để có được hiệu suất tối đa cho các truy vấn.
Kịch bản:
PostgreQuery 8.4, bảng có khoảng một triệu hàng
Các giá trị trong cột c1 có thể có khoảng 100 giá trị khác nhau . Chúng ta có thể giả sử các giá trị được phân phối đồng đều, vì vậy chúng ta có khoảng 10000 hàng cho mỗi giá trị có thể.
Cột c2 có thể có 1000 giá trị khác nhau . Chúng tôi có 1000 hàng cho mỗi giá trị có thể.
Khi tìm kiếm dữ liệu, điều kiện luôn bao gồm các giá trị cho hai cột này, do đó bảng có chỉ mục nhiều màu kết hợp giữa c1 và c2. Tôi đã đọc về tầm quan trọng của việc sắp xếp đúng các cột trong chỉ mục nhiều màu nếu bạn có truy vấn chỉ sử dụng một cột để lọc. Đây không phải là trường hợp trong kịch bản của chúng tôi.
Câu hỏi của tôi là cái này:
Với thực tế là một trong các bộ lọc chọn một bộ dữ liệu nhỏ hơn nhiều, tôi có thể cải thiện hiệu suất nếu chỉ mục đầu tiên là chỉ số được chọn nhiều nhất (bộ lọc cho phép tập nhỏ hơn) không? Tôi chưa bao giờ xem xét câu hỏi này cho đến khi tôi thấy đồ họa từ bài viết được tham khảo:
Hình ảnh được lấy từ bài viết được tham khảo về các chỉ số nhiều màu .
Các truy vấn sử dụng các giá trị từ hai cột để lọc. Tôi không có truy vấn chỉ sử dụng một cột để lọc. Tất cả chúng là : WHERE c1=@ParameterA AND c2=@ParameterB
. Cũng có những điều kiện như thế này:WHERE c1 = "abc" AND c2 LIKE "ab%"