Verwenden Sie UNIX_TIMESTAMP auf der Konstante anstelle von FROM_UNIXTIME auf der Spalte:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Dies kann schneller sein, da die Datenbank einen Index für die Spalte timestamp_field
verwenden kann , falls vorhanden. Es ist der Datenbank nicht möglich, den Index zu verwenden, wenn Sie ein Nicht-Sargable
verwenden Funktion wie FROM_UNIXTIME in der Spalte.
Wenn Sie keinen Index für timestamp_field
haben dann füge eins hinzu.
Sobald Sie dies getan haben, können Sie auch versuchen, die Leistung weiter zu verbessern, indem Sie die benötigten Spalten auswählen, anstatt SELECT *
zu verwenden .