C'è un'enorme differenza di prestazioni quando si utilizza il campo DATE sopra il campo DATETIME. Ho una tabella con più di 4.000.000 di record ea scopo di test ho aggiunto 2 campi con entrambi i propri indici. Uno utilizza DATETIME e l'altro campo utilizza DATE.
Ho disabilitato la cache delle query MySQL per poter testare correttamente e ho eseguito il loop della stessa query per 1000 volte:
SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
INDICE DATA ORA:197.564 secondi.
SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
INDICE DELLA DATA:107.577 secondi.
L'utilizzo di un campo con data indicizzata ha un miglioramento delle prestazioni di:45,55%!!
Quindi direi che se ti aspetti molti dati nella tua tabella, considera di separare la data dall'ora con il proprio indice.