Použijte UNIX_TIMESTAMP na konstantě místo FROM_UNIXTIME ve sloupci:
SELECT * FROM table
WHERE timestamp_field
BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
To může být rychlejší, protože umožňuje databázi používat index ve sloupci timestamp_field
, pokud takový existuje. Není možné, aby databáze používala index, když používáte nesargable
fungovat jako FROM_UNIXTIME na sloupci.
Pokud nemáte index v timestamp_field
pak jeden přidejte.
Jakmile to uděláte, můžete se také pokusit dále zlepšit výkon výběrem sloupců, které potřebujete, namísto použití SELECT *
.