Użyj UNIX_TIMESTAMP na stałej zamiast FROM_UNIXTIME w kolumnie:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Może to być szybsze, ponieważ pozwala bazie danych na użycie indeksu w kolumnie timestamp_field
, jeśli istnieje. Baza danych nie może korzystać z indeksu, gdy używasz sargable
działają jak FROM_UNIXTIME w kolumnie.
Jeśli nie masz indeksu w timestamp_field
następnie dodaj jeden.
Gdy już to zrobisz, możesz spróbować jeszcze bardziej poprawić wydajność, wybierając potrzebne kolumny zamiast używać SELECT *
.