Използвайте UNIX_TIMESTAMP на константата вместо FROM_UNIXTIME на колоната:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Това може да бъде по-бързо, защото позволява на базата данни да използва индекс на колоната timestamp_field
, ако съществува такъв. Не е възможно базата данни да използва индекса, когато използвате неsargable
функция като FROM_UNIXTIME в колоната.
Ако нямате индекс на timestamp_field
след това добавете един.
След като направите това, можете също да опитате да подобрите допълнително производителността, като изберете колоните, от които се нуждаете, вместо да използвате SELECT *
.