2010-10-01 26 views
5

Sẽ có bất kỳ lợi ích thực sự nào cho tôi khi đưa chỉ mục vào các trường ngày sẽ được sử dụng chủ yếu trong các truy vấn sử dụng các công cụ như thế.Đưa chỉ mục vào trường ngày trong MySQL

dateField < 'var' 

'var' BETWEEN dateField1 AND dateField2 

Các tìm kiếm được thực hiện rất nhiều nhưng tôi không bao giờ làm một so sánh trực tiếp "=" vào chúng.

Trả lời

16

Có tất nhiên. Phạm vi tìm kiếm sẽ được hưởng lợi từ một chỉ mục, cũng giống như tìm kiếm bình đẳng.

Trích dẫn từ MySQL Reference Manual :: How MySQL Uses Indexes:

B-Tree Index Đặc

Một chỉ số B-cây có thể được sử dụng để so sánh cột trong biểu thức sử dụng =,>,> =, < , < = hoặc GIỮA nhà khai thác. Chỉ mục này cũng có thể được sử dụng cho các so sánh LIKE nếu đối số LIKE là một chuỗi không đổi bắt đầu bằng ký tự đại diện.

Trong một số trường hợp, người tối ưu hóa có thể quyết định không sử dụng chỉ mục nếu phạm vi sẽ kết thúc quá lớn, vì việc quét bảng có thể thực sự nhanh hơn. Sử dụng EXPLAIN để xem chỉ mục nào (nếu có) sẽ được sử dụng trên truy vấn của bạn.

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