2009-10-06 43 views
12

Tôi nhận thấy rằng câu hỏi chính xác đã được hỏi trước khi tràn ngăn xếp chỉ với một câu trả lời mơ hồ kết luận: linkGiá trị null chỉ mục mysql 5.0 có được không?

Vì vậy, đây là một lần nữa.

Bảng A: Có cột số nguyên không có giá trị, cùng với chỉ mục. Truy vấn:

SELECT * 
FROM table 
WHERE column IS NULL 
LIMIT 10; 

Chỉ mục sẽ được sử dụng, hoặc mysql sẽ quét toàn bộ bảng cho đến khi tìm thấy 10 mục?

Trả lời

4

Cách duy nhất để biết rằng chắc chắn trong trường hợp cụ thể của bạn là chạy "GIẢI THÍCH CHỌN" trên truy vấn của bạn.

Nó thực sự phụ thuộc vào số lượng NULL trong bảng của bạn so với tổng số hàng; liệu số liệu thống kê bảng đã được cập nhật hay chưa ...

3

Bạn sẽ phải phân tích truy vấn. Nói chung, nó phụ thuộc vào tỷ lệ tương đối của NULLs cho các giá trị. Nếu phần lớn các mục trong cột số nguyên đó là NULL, thì nó sẽ bỏ qua nó.

Mặt khác, nếu chỉ 10% (ví dụ) là NULL, nó sẽ (hoặc nên) sử dụng chỉ mục.

+1

Cảm ơn bạn ạ. Tôi chỉ cần xem xét lại điều này. Và tôi muốn thêm cho bất kỳ ai đến trang này trong tương lai rằng câu trả lời của bạn là tốt nhất. – usumoio

+0

Cảm ơn bạn. Rất vui vì nó rất hữu ích. –

0

Có một cách đơn giản để biết điều đó.

Bạn có thể thực hiện lệnh này show index from tablename và nó sẽ trả lại một số kết quả phân tích được gọi là NULL.

nếu NULL bằng YES, chỉ số của bạn có chứa NULL

http://dev.mysql.com/doc/refman/5.1/en/show-index.html

Các vấn đề liên quan