sql >> Databasteknik >  >> RDS >> Mysql

Tidsstämpel som int-fält, frågeprestanda

Använd UNIX_TIMESTAMP på konstanten istället för FROM_UNIXTIME i kolumnen:

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

Detta kan vara snabbare eftersom det tillåter databasen att använda ett index i kolumnen timestamp_field , om en sådan finns. Det är inte möjligt för databasen att använda indexet när du använder en icke-sargable fungerar som FROM_UNIXTIME i kolumnen.

Om du inte har ett index på timestamp_field lägg sedan till en.

När du har gjort detta kan du också försöka förbättra prestandan ytterligare genom att välja de kolumner du behöver istället för att använda SELECT * .



  1. Hur släpper man en tabell om den finns?

  2. MySQL Infoga rad, på duplikat:lägg till suffix och infoga igen

  3. Kontrollera PHP-variabeltypen mot en MYSQL-datatyp

  4. Anslut på fjärr MySQL-databas via Python