Tôi chủ yếu là một nhà phát triển Actionscript và không có nghĩa là một chuyên gia trong SQL, nhưng theo thời gian tôi phải phát triển các công cụ phía máy chủ đơn giản. Vì vậy, tôi nghĩ rằng tôi muốn hỏi những người có kinh nghiệm hơn về câu hỏi trong tiêu đề.Có ý nghĩa gì khi sử dụng một chỉ mục sẽ có một số lượng cardinality thấp?
Sự hiểu biết của tôi là bạn không đạt được nhiều bằng cách đặt chỉ mục trong cột sẽ giữ một vài giá trị riêng biệt. Tôi có một cột chứa một giá trị boolean (thực sự nó là một int nhỏ, nhưng tôi đang sử dụng nó như một lá cờ), và cột này được sử dụng trong mệnh đề WHERE của hầu hết các truy vấn tôi có. Trong một trường hợp "trung bình" lý thuyết, một nửa giá trị của các bản ghi sẽ là 1 và nửa còn lại, 0. Vì vậy, trong trường hợp này, cơ sở dữ liệu có thể tránh quét toàn bộ bảng, nhưng sẽ phải đọc rất nhiều hàng (tổng số hàng/2).
Vì vậy, tôi có nên đặt cột này thành chỉ mục không?
Để ghi lại, tôi đang sử dụng Mysql 5, nhưng tôi quan tâm nhiều hơn đến lý do chung về lý do tại sao nó không có ý nghĩa lập chỉ mục một cột mà tôi biết rằng sẽ có một số lượng cardinality thấp.
Xin cảm ơn trước.
Cảm ơn câu trả lời của bạn. Trong trường hợp này, tôi không phân loại cột đó. Nó chỉ ở đó để đánh dấu một bản ghi là đã bật/tắt. Tôi đang sử dụng nó để xóa phần mềm, về cơ bản. Đó là lý do tại sao tôi phải sử dụng nó trong mệnh đề WHERE của hầu hết các truy vấn. –