Er is een enorm prestatieverschil bij het gebruik van het DATE-veld boven het DATETIME-veld. Ik heb een tabel met meer dan 4.000.000 records en voor testdoeleinden heb ik 2 velden toegevoegd met beide hun eigen index. Een met DATETIME en het andere veld met DATE.
Ik heb de MySQL-querycache uitgeschakeld om goed te kunnen testen en heb dezelfde query 1000x doorgelust:
SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATETIME INDEX:197.564 seconden.
SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATUMINDEX:107.577 seconden.
Het gebruik van een datum-geïndexeerd veld heeft een prestatieverbetering van:45,55%!!
Dus ik zou zeggen dat als je veel gegevens in je tabel verwacht, overweeg dan om de datum van de tijd te scheiden met hun eigen index.