Es gibt einen großen Unterschied in der Leistung, wenn das DATE-Feld über dem DATETIME-Feld verwendet wird. Ich habe eine Tabelle mit mehr als 4.000.000 Datensätzen und zu Testzwecken habe ich 2 Felder mit jeweils eigenem Index hinzugefügt. Eines mit DATETIME und das andere mit DATE.
Ich habe den MySQL-Abfrage-Cache deaktiviert, um ordnungsgemäß testen zu können, und dieselbe Abfrage für 1000x wiederholt:
SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATETIME INDEX:197.564 Sekunden.
SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATUMSINDEX:107,577 Sekunden.
Die Verwendung eines datumsindizierten Felds hat eine Leistungsverbesserung von:45,55 %!!
Ich würde also sagen, wenn Sie viele Daten in Ihrer Tabelle erwarten, ziehen Sie bitte in Betracht, Datum und Uhrzeit mit einem eigenen Index zu trennen.