Ada perbedaan besar dalam kinerja saat menggunakan bidang DATE di atas bidang DATETIME. Saya memiliki tabel dengan lebih dari 4.000.000 catatan dan untuk tujuan pengujian saya menambahkan 2 bidang dengan indeks mereka sendiri. Satu menggunakan DATETIME dan bidang lainnya menggunakan DATE.
Saya menonaktifkan cache kueri MySQL agar dapat menguji dengan benar dan mengulang kueri yang sama selama 1000x:
SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATETIME INDEX:197,564 detik.
SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
INDEKS TANGGAL:107,577 detik.
Menggunakan bidang yang diindeks tanggal memiliki peningkatan kinerja:45,55%!!
Jadi saya akan mengatakan jika Anda mengharapkan banyak data di tabel Anda, harap pertimbangkan untuk memisahkan tanggal dari waktu dengan indeks mereka sendiri.