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

Data i godzina a data i godzina Mysql

Użycie pola DATE nad polem DATETIME powoduje ogromną różnicę w wydajności. Mam tabelę z ponad 4 000 000 rekordów i do celów testowych dodałem 2 pola z własnym indeksem. Jedno za pomocą DATETIME, a drugie za pomocą DATE.

Wyłączyłem pamięć podręczną zapytań MySQL, aby móc poprawnie testować i zapętlić to samo zapytanie dla 1000x:

SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; DATETIME INDEX:197,564 sekund.

SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; INDEKS DATY:107,577 sekund.

Użycie pola indeksowanego datą zapewnia poprawę wydajności o:45,55%!!

Powiedziałbym więc, że jeśli spodziewasz się dużej ilości danych w swojej tabeli, rozważ oddzielenie daty od czasu za pomocą własnego indeksu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zezwolić na pusty ciąg dla liczb całkowitych w MySQL?

  2. Ważne kontrole stanu serwerów MySQL Source-Replica

  3. Railsy `gdzie` na czas krótszy niż zapytania

  4. Jak uzyskać dostęp do zdalnego serwera za pomocą lokalnego klienta phpMyAdmin?

  5. Left Join nie zwraca wszystkich wierszy