Maison  >  Article  >  base de données  >  L'indexation entière est-elle plus rapide que l'indexation DateTime pour les grands ensembles de données ?

L'indexation entière est-elle plus rapide que l'indexation DateTime pour les grands ensembles de données ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 11:36:02782parcourir

 Is Integer Indexing Faster Than DateTime Indexing for Large Datasets?

Comparaison d'index MySQL : entier et DateTime

Alors que les discussions précédentes ont comparé les types de champs Timestamp et DateTime sans indexation, cette enquête se concentre spécifiquement sur les performances de DateTime avec index par rapport à int avec index dans les tables InnoDB avec des millions d'enregistrements.

Dans ces scénarios, requêtes avec des critères basés sur :

  1. DateTime avec index : Utilisez l'index sur la colonne DateTime.
  2. int avec index : Exploitez l'index sur la représentation entière (horodatage UNIX) de la valeur DateTime.

Évaluation empirique

Les tests initiaux utilisant MySQL 5.1.41 et 10 millions d'enregistrements démontrent un avantage de vitesse remarquable pour int :

Query DateTime with Index (sec) int with Index (sec)
COUNT(*) 120.27 25.02
BETWEEN 8.41 1.56

Explication

L'efficacité de int est attribuée au fait que l'index peut être directement comparé aux critères de requête, éliminant ainsi le besoin pour MySQL d'analyser et de convertir les dates. En revanche, DateTime nécessite un traitement supplémentaire pour extraire et comparer les composants de date et d'heure.

Considérations supplémentaires

Des tests ultérieurs avec les deux types de champs stockés dans la même table ont donné des résultats similaires. performances, suggérant que MySQL peut optimiser les requêtes en reconnaissant l'équivalence des valeurs DateTime et int.

Conclusion

Sur la base de ces résultats, il est recommandé de stocker les dates et les heures comme int (horodatage UNIX) si les performances des requêtes basées sur l'index sont primordiales. Cette optimisation peut réduire considérablement le temps d'exécution des requêtes, en particulier dans les grandes bases de données avec des critères fréquents basés sur la date.

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