Maison > base de données > tutoriel mysql > Clés primaires INT ou VARCHAR pour les listes de référence : les performances sont-elles vraiment importantes ?

Clés primaires INT ou VARCHAR pour les listes de référence : les performances sont-elles vraiment importantes ?

Patricia Arquette
Libérer: 2024-12-21 12:03:10
original
152 Les gens l'ont consulté

INT or VARCHAR Primary Keys for Reference Lists: Does Performance Really Matter?

Clés primaires INT vs VARCHAR : problèmes de performances à bas les mythes

Le choix entre les clés primaires INT et VARCHAR dans MySQL a longtemps été débattu, en particulier concernant les listes de références. Alors que INT est le choix traditionnel, VARCHAR gagne en popularité en raison de sa capacité à présenter directement des informations, réduisant potentiellement le besoin de JOIN.

Cet article vise à étudier les implications en termes de performances de l'utilisation des clés primaires INT par rapport aux clés primaires VARCHAR. dans un cas d'utilisation spécifique : listes de référence comme les États américains et les codes de pays.

Résultats de référence

Pour évaluer Pour évaluer la différence de performances, une série de tests ont été effectués à l'aide d'une configuration composée de :

  • CPU Intel® Core™ i7-7500U à 2,70 GHz × 4
  • 15,6 Gio de RAM
  • Ubuntu 16.04 64 bits
  • MySQL Ver 14.14 Distrib 5.7.20

Deux ensembles de tables ont été créés : les tables INT et les tables VARCHAR, chacune indexée et non indexée. Les tables ont ensuite été remplies avec 10 millions de lignes et une requête de référence a été exécutée sur chaque table pour mesurer le temps nécessaire pour récupérer une ligne spécifique.

Durées d'exécution des requêtes de référence

Les temps d'exécution de la requête benchmark sont les suivants :

  • jan_int : 21h30 sec
  • jan_int_index : 18,79 sec
  • jan_char : 21,70 sec
  • jan_char_index : 18,85 sec
  • jan_varchar : 21,76 sec
  • jan_varchar_index : 18,86 sec

Analyse

Les résultats indiquent que la différence de performances entre les clés primaires INT et VARCHAR est minime pour les listes de référence. Les temps d'exécution des requêtes de référence se situent à quelques centaines de millisecondes les uns des autres, que la clé soit indexée ou non.

Cela suggère que les avantages en termes de performances liés à la réduction des JOIN à l'aide d'une clé primaire VARCHAR sont compensés par les avantages supplémentaires en termes de performances. surcharge liée au stockage des données de longueur variable.

Conclusion

Sur la base des résultats de référence, on peut conclure que, pour les listes de référence comme les États américains et les codes de pays, le choix entre les clés primaires INT et VARCHAR est avant tout une question de préférence plutôt que de performance. La différence de performances est négligeable et d'autres facteurs, tels que la cohérence des données et l'évolutivité future, peuvent influencer la décision.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal