Brug UNIX_TIMESTAMP på konstanten i stedet for FROM_UNIXTIME på kolonnen:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Dette kan være hurtigere, fordi det tillader databasen at bruge et indeks i kolonnen timestamp_field
, hvis der findes en. Det er ikke muligt for databasen at bruge indekset, når du bruger en ikke-sargable
fungerer som FROM_UNIXTIME på kolonnen.
Hvis du ikke har et indeks på timestamp_field
derefter tilføje en.
Når du har gjort dette, kan du også prøve at forbedre ydeevnen yderligere ved at vælge de kolonner, du har brug for i stedet for at bruge SELECT *
.