Při použití pole DATE nad polem DATETIME je obrovský rozdíl ve výkonu. Mám tabulku s více než 4 000 000 záznamy a pro testovací účely jsem přidal 2 pole s oběma vlastními indexy. Jedno pomocí DATETIME a druhé pole pomocí DATE.
Zakázal jsem mezipaměť dotazů MySQL, abych mohl správně testovat, a opakoval jsem stejný dotaz 1000x:
SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATETIME INDEX:197,564 sekund.
SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10;
DATE INDEX:107,577 sekund.
Použití pole indexovaného podle data má zlepšení výkonu o:45,55 %!!
Řekl bych tedy, že pokud očekáváte ve své tabulce mnoho dat, zvažte prosím oddělení data od času pomocí vlastního indexu.