Mysql
 sql >> Base de données >  >> RDS >> Mysql

Datetime vs Date et heure Mysql

Il existe une énorme différence de performances lors de l'utilisation du champ DATE au-dessus du champ DATETIME. J'ai une table avec plus de 4.000.000 enregistrements et à des fins de test, j'ai ajouté 2 champs avec leur propre index. L'un utilisant DATETIME et l'autre champ utilisant DATE.

J'ai désactivé le cache de requête MySQL pour pouvoir tester correctement et j'ai bouclé la même requête pour 1000x :

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

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

L'utilisation d'un champ indexé par date a une amélioration des performances de :45,55 % !!

Donc, je dirais que si vous attendez beaucoup de données dans votre table, veuillez envisager de séparer la date de l'heure avec leur propre index.