Gunakan UNIX_TIMESTAMP pada konstanta alih-alih FROM_UNIXTIME pada kolom:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Ini bisa lebih cepat karena memungkinkan database menggunakan indeks pada kolom timestamp_field
, jika ada. Basis data tidak mungkin menggunakan indeks saat Anda menggunakan non-sargable
berfungsi seperti FROM_UNIXTIME pada kolom.
Jika Anda tidak memiliki indeks di timestamp_field
lalu tambahkan satu.
Setelah Anda melakukan ini, Anda juga dapat mencoba untuk lebih meningkatkan kinerja dengan memilih kolom yang Anda butuhkan daripada menggunakan SELECT *
.