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 :
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 :
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!