sql >> Databáze >  >> RDS >> Mysql

Časové razítko jako pole int, výkon dotazu

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 * .



  1. Jak převést hodnoty oddělené čárkami na řádky v oracle?

  2. MySQL PDO – nastavení výchozího režimu načítání?

  3. Jak zřetězit hodnoty z MySQL SELECT

  4. Vložení více hodnot do jedné buňky MYSQL