Slechts een suggestie als het gaat om indexen op datetime in msql is dat de indexvoetafdruk de zoektijden beïnvloedt (Ja, dit lijkt voor de hand liggend ... maar lees alstublieft verder).
Het belang hiervan bij het indexeren op de datetime zegt bijvoorbeeld '2015-06-05 22:47:20.102' de index moet rekening houden met elke plaats binnen de datetime. Dit wordt ruimtelijk erg groot en omvangrijk. Een succesvolle aanpak die ik heb gebruikt, is het maken van een nieuwe datetime-kolom en het vullen van de gegevens door de tijd af te ronden op het uur en vervolgens de index op deze nieuwe kolom te bouwen. Voorbeeld '2015-06-05 22:47:20.102' vertaalt naar '2015-06-05 22:00:00.000'. Door deze benadering te volgen, laten we de gedetailleerde gegevens alleen en kunnen deze weergeven of gebruiken door te zoeken in deze nieuwe kolom, wat ons ongeveer 10x (minimaal) rendement geeft op hoe snel resultaten worden geretourneerd. Dit komt doordat de index geen rekening hoeft te houden met de velden voor minuten, seconden en milliseconden.