Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znacznik czasu jako pole int, wydajność zapytania

Użyj UNIX_TIMESTAMP na stałej zamiast FROM_UNIXTIME w kolumnie:

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

Może to być szybsze, ponieważ pozwala bazie danych na użycie indeksu w kolumnie timestamp_field , jeśli istnieje. Baza danych nie może korzystać z indeksu, gdy używasz sargable działają jak FROM_UNIXTIME w kolumnie.

Jeśli nie masz indeksu w timestamp_field następnie dodaj jeden.

Gdy już to zrobisz, możesz spróbować jeszcze bardziej poprawić wydajność, wybierając potrzebne kolumny zamiast używać SELECT * .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernacja:zamieszanie związane z samodołączaniem?

  2. Zapytanie MySQL zajmuje ponad 6 sekund

  3. Używanie XAMPP i Mysql Workbench razem

  4. Najważniejsze błędy, których należy unikać podczas replikacji MySQL

  5. Zapytanie MySQL z wieloma tabelami