Gebruik UNIX_TIMESTAMP op de constante in plaats van FROM_UNIXTIME in de kolom:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Dit kan sneller zijn omdat de database hierdoor een index kan gebruiken in de kolom timestamp_field
, als er een bestaat. Het is niet mogelijk voor de database om de index te gebruiken wanneer u een niet-sargable
gebruikt functie zoals FROM_UNIXTIME op de kolom.
Als je geen index hebt op timestamp_field
voeg er dan een toe.
Als je dit eenmaal hebt gedaan, kun je ook proberen de prestaties verder te verbeteren door de kolommen te selecteren die je nodig hebt in plaats van SELECT *
te gebruiken. .