Sử dụng UNIX_TIMESTAMP trên hằng số thay vì FROM_UNIXTIME trên cột:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Điều này có thể nhanh hơn vì nó cho phép cơ sở dữ liệu sử dụng chỉ mục trên cột timestamp_field
, nếu một trong những tồn tại. Cơ sở dữ liệu không thể sử dụng chỉ mục khi bạn sử dụng non- sargable
hàm như FROM_UNIXTIME trên cột.
Nếu bạn không có chỉ mục trên timestamp_field
sau đó thêm một.
Khi bạn đã làm xong việc này, bạn cũng có thể cố gắng cải thiện hơn nữa hiệu suất bằng cách chọn các cột bạn cần thay vì sử dụng SELECT *
.