Maison  >  Article  >  base de données  >  Indexation entière ou date-heure dans MySQL : laquelle est la plus rapide pour les requêtes par plage de dates ?

Indexation entière ou date-heure dans MySQL : laquelle est la plus rapide pour les requêtes par plage de dates ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 23:36:28937parcourir

  Integer vs. DateTime Indexing in MySQL: Which is Faster for Date Range Queries?

Optimisation MySQL : indexation entier vs date-heure pour les performances

L'efficacité des requêtes est cruciale pour les bases de données à grande échelle. Lors de l'indexation des données de date et d'heure dans MySQL, le choix entre un champ Integer ("INT") et un champ DateTime se présente.

Considérations sur les performances

Concernant les performances, les tests initiaux avec 10 millions d'enregistrements dans une table InnoDB révèlent un avantage significatif pour l'indexation INT lorsque les critères sont basés sur des plages de dates. Les requêtes de comptage, même avec une large plage, démontrent un temps d'exécution plus rapide avec INT.

Résultats des tests

  • Requêtes de comptage :

    SQL_NO_CACHE COUNT(*) FROM `tbl_int` (INT): 25.02 sec
    SQL_NO_CACHE COUNT(*) FROM `tbl_dt` (DateTime): 2 min 10.27 sec
  • Requêtes de plage :

    SQL_NO_CACHE COUNT(*) FROM `tbl_int` (INT): 1.56 sec
    SQL_NO_CACHE COUNT(*) FROM `tbl_dt` (DateTime): 8.41 sec

Observations

  • Le calcul de l'heure UNIX à l'avance améliore considérablement les performances INT.
  • MySQL semble optimiser les requêtes lorsque les champs DateTime et INT sont présents dans la même table.
  • Dans l'ensemble, INT s'avère plus rapide pour les requêtes par plage de dates.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn