Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Data e hora vs data e hora Mysql


Há uma grande diferença no desempenho ao usar o campo DATE acima do campo DATETIME. Tenho uma tabela com mais de 4.000.000 registros e para fins de teste adicionei 2 campos com ambos os seus próprios índices. Um usando DATETIME e o outro campo usando DATE.

Desativei o cache de consulta do MySQL para poder testar corretamente e fiz um loop na mesma consulta para 1000x:

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

SELECT * FROM `logs` WHERE `d` BETWEEN '2015-04-01' AND '2015-05-01' LIMIT 10000,10; ÍNDICE DE DATA:107,577 segundos.

O uso de um campo indexado por data melhora o desempenho de:45,55%!!

Então, eu diria que se você está esperando muitos dados em sua tabela, considere separar a data da hora com seu próprio índice.