Use UNIX_TIMESTAMP na constante em vez de FROM_UNIXTIME na coluna:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
Isso pode ser mais rápido porque permite que o banco de dados use um índice na coluna
timestamp_field
, caso exista. Não é possível para o banco de dados usar o índice quando você usa um não-sargable
funcionam como FROM_UNIXTIME na coluna. Se você não tiver um índice em
timestamp_field
em seguida, adicione um. Depois de fazer isso, você também pode tentar melhorar ainda mais o desempenho selecionando as colunas necessárias em vez de usar
SELECT *
.