Mysql
 sql >> Database >  >> RDS >> Mysql

Datetime vs data e ora MySQL

C'è un'enorme differenza di prestazioni quando si utilizza il campo DATE sopra il campo DATETIME. Ho una tabella con più di 4.000.000 di record ea scopo di test ho aggiunto 2 campi con entrambi i propri indici. Uno utilizza DATETIME e l'altro campo utilizza DATE.

Ho disabilitato la cache delle query MySQL per poter testare correttamente e ho eseguito il loop della stessa query per 1000 volte:

SELECT * FROM `logs` WHERE `dt` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; INDICE DATA ORA:197.564 secondi.

SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; INDICE DELLA DATA:107.577 secondi.

L'utilizzo di un campo con data indicizzata ha un miglioramento delle prestazioni di:45,55%!!

Quindi direi che se ti aspetti molti dati nella tua tabella, considera di separare la data dall'ora con il proprio indice.