Maison  >  Article  >  base de données  >  Analyse comparative de l'association multi-tables MySQL sur et où accélère le code source

Analyse comparative de l'association multi-tables MySQL sur et où accélère le code source

WBOY
WBOYavant
2023-06-02 13:49:061233parcourir

Parlons d'abord de la conclusion

Les vitesses de jointure des requêtes Where et peer-to-peer sont fondamentalement les mêmes, et la vitesse de jointure des requêtes non équivalentes est généralement plus lente.

Expérience 1 : Il n'y a pas d'enregistrements inégaux

Nous avons deux tables, à savoir member et member_class. La structure des données est la suivante, où member.class_id et member_class.id. sont des champs associés

Analyse comparative de lassociation multi-tables MySQL sur et où accélère le code source

Analyse comparative de lassociation multi-tables MySQL sur et où accélère le code source

Nous avons écrit 200 000 éléments de données dans les deux tables respectivement, dont les membres .class_id doit exister dans member_class.id (il n'y a pas d'enregistrement inégal)

Vérifiez le tableau complet

Analyse comparative de lassociation multi-tables MySQL sur et où accélère le code source

Pour expérimenter À pour être plus précis, nous interrogeons chaque résultat 20 fois :

où le temps de requête est (secondes) :

#🎜🎜 #0.253, 0,256, 0,256, 0,252, 0,257, 0,252, 0,260, 0,265, 0,253, 0,252, 0,254, 0,257, 0,254, 0,257, 0,243, 0,250, 0,252, 0,2 52, 255, 0,284

#🎜 La requête les temps de 🎜#
on sont (secondes) :

0.247, 0.260, 0.250, 0.246, 0.271, 0.247, 0.251, 0.247, 0. 243, 0,247, 0,247, 0,245, 0,249, 0,246, 0,247, 0,253, 0,248, 0,254, 0,251, 0,247, 0,250

où la moyenne des requêtes est de 0,255 7 s, sur la requête en moyenne 0,2498 s ; deux sont fondamentalement cohérents et la différence est presque négligeable.

Expérience 2 : Des enregistrements inégaux existent

Nous créons une nouvelle table member_v2, dans laquelle seulement 20% du class_id existe dans member_class.id

comme suit Photo :

Analyse comparative de lassociation multi-tables MySQL sur et où accélère le code source Nous continuons à interroger le test de la table complète :

# 🎜🎜#Oui Un écart très évident peut être constaté. En raison du grand nombre d'enregistrements inégaux dans LEFT JOIN, un grand nombre de valeurs NULL apparaissent. À ce stade, l'efficacité des requêtes de la table intermédiaire devient inférieure. La requête WHERE peut filtrer automatiquement les enregistrements inégaux pendant la requête. Analyse comparative de lassociation multi-tables MySQL sur et où accélère le code source

Le temps de requête est donc également plus rapide.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer