Tôi chỉ tìm mysql có thể truy vấn datetime sử dụng như:mysql lĩnh vực datetime với chỉ số có được một phạm vi 'như' vs 'giữa và' hiệu suất
like '2013-06-12%'
tôi nghĩ rằng nó không thể sử dụng các chỉ số. Tôi Google nó, nhưng không thể tìm thấy chủ đề như vậy trực tiếp. Vì vậy, tôi có một bài kiểm tra bằng cách sử dụng một bảng với 3308614 hồ sơ. Câu lệnh SQL đầu tiên:
SELECT * FROM subscription t WHERE DATE(t.active_time) = '2013-06-30';
Tất cả chúng ta biết SQL này không thể sử dụng chỉ mục và mất 4 giây để có kết quả. Câu lệnh SQL thứ hai:
SELECT * FROM subscription t WHERE t.active_time LIKE '2013-06-30%';
Tôi không biết nếu nó có thể sử dụng chỉ mục, nhưng cũng mất 4 giây. Câu lệnh SQL thứ ba:
SELECT * FROM subscription t WHERE t.active_time > '2007-11-30' AND t.active_time < '2007-12-01';
Tất cả chúng ta biết SQL thứ ba có thể sử dụng chỉ mục và phải mất 0,016 giây. Vì vậy, tôi nghĩ 'like' không thể sử dụng chỉ mục khi truy vấn trường datetime, bởi vì mysql nên chuyển đổi trường datetime thành chuỗi đầu tiên và gửi chuỗi giống như lệnh. Điều này có đúng không?
"Điều này có đúng không?" --- yep – zerkms
bạn có thể truy vấn ngày và như thế này 't.active_time = '2013-06-30'' – Justin
KHÔNG thể sử dụng t.active_time =' 2013-06-30 '!! – bluearrow