sql >> Database >  >> RDS >> Mysql

Tijdstempel als int-veld, queryprestaties

Gebruik UNIX_TIMESTAMP op de constante in plaats van FROM_UNIXTIME in de kolom:

SELECT * FROM table
WHERE timestamp_field
   BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
       AND UNIX_TIMESTAMP('2010-04-14 23:59:59')

Dit kan sneller zijn omdat de database hierdoor een index kan gebruiken in de kolom timestamp_field , als er een bestaat. Het is niet mogelijk voor de database om de index te gebruiken wanneer u een niet-sargable gebruikt functie zoals FROM_UNIXTIME op de kolom.

Als je geen index hebt op timestamp_field voeg er dan een toe.

Als je dit eenmaal hebt gedaan, kun je ook proberen de prestaties verder te verbeteren door de kolommen te selecteren die je nodig hebt in plaats van SELECT * te gebruiken. .



  1. MySQL MAAK TABEL ALS NIET BESTAAT -> Fout 1050

  2. Hoe SQL Server op Linux te installeren

  3. Hoe controleer ik of alle velden uniek zijn in Oracle?

  4. (PHP):Waarschuwing:include_once, kan stream niet openen:toestemming geweigerd