Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datetime vs. Datum und Uhrzeit MySQL

Es gibt einen großen Unterschied in der Leistung, wenn das DATE-Feld über dem DATETIME-Feld verwendet wird. Ich habe eine Tabelle mit mehr als 4.000.000 Datensätzen und zu Testzwecken habe ich 2 Felder mit jeweils eigenem Index hinzugefügt. Eines mit DATETIME und das andere mit DATE.

Ich habe den MySQL-Abfrage-Cache deaktiviert, um ordnungsgemäß testen zu können, und dieselbe Abfrage für 1000x wiederholt:

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

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

Die Verwendung eines datumsindizierten Felds hat eine Leistungsverbesserung von:45,55 %!!

Ich würde also sagen, wenn Sie viele Daten in Ihrer Tabelle erwarten, ziehen Sie bitte in Betracht, Datum und Uhrzeit mit einem eigenen Index zu trennen.