Maison > base de données > tutoriel mysql > le corps du texte

À quoi devez-vous faire attention lorsque vous utilisez des requêtes associées dans MySQL ?

PHPz
Libérer: 2023-05-28 15:17:30
avant
1050 Les gens l'ont consulté

1. Assurez-vous qu'il y a des index sur les colonnes dans les clauses ON et USING.

Lors de la création d'un index, vous devez tenir compte de l'ordre des associations. Lorsque la table A et la table B sont associées à l'aide de la colonne c, si l'ordre d'association de l'optimiseur est A, B, alors il n'est pas nécessaire de créer un index sur la colonne correspondante de la table A. Les index inutilisés entraîneront une charge supplémentaire. De manière générale, sauf autre raison, il vous suffit de créer des index sur les colonnes correspondantes de la deuxième table de la séquence d'association.

2. Assurez-vous que toutes les expressions dans GROUP BY et ORDER BY n'impliquent que des colonnes d'une seule table, afin que MySQL puisse utiliser les index pour l'optimisation.

Exemple

En supposant que MySQL effectue des opérations d'association selon l'ordre d'association A et B dans la requête, le pseudo-code suivant peut être utilisé pour représenter comment MySQL termine cette requête :

outer_iterator = SELECT A.xx,A.c FROM A WHERE A.xx IN (5,6);
 
outer_row = outer_iterator.next;
 
while(outer_row) {
 
    inner_iterator = SELECT B.yy FROM B WHERE B.c = outer_row.c;
 
    inner_row = inner_iterator.next;
 
    while(inner_row) {
 
        output[inner_row.yy,outer_row.xx];
 
        inner_row = inner_iterator.next;
 
    }
 
    outer_row = outer_iterator.next;
 
}  可以看到,最外层的查询是根据A.xx列来查询的,A.c上如果有索引的话,整个关联查询也不会使用。再看内层的查询,很明显B.c上如果有索引的话,能够加速查询,因此只需要在关联顺序中的第二张表的相应列上创建索引即可。
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!