Méthodes pour MYSQL pour éviter les analyses de table complètes : 1. Créez des index sur les colonnes impliquées dans Where et triez par ; 2. Évitez les jugements de valeur nuls sur les champs de la clause Where et évitez d'utiliser " ! » ou symbole d'opérations, évitez d'utiliser ou pour connecter les conditions ; 3. Utilisez in et not in avec prudence ; 4. Évitez d'utiliser des calculs sur les colonnes d'index.
MYSQL évite l'analyse complète de la table
1 Pour optimiser la requête, essayez d'abord d'éviter l'analyse complète de la table. de tous, vous devriez envisager de créer des index sur les colonnes impliquées dans Where et Order By
2. Essayez d'éviter les jugements de valeur nulle sur les champs de la clause Where, sinon le moteur abandonnera l'utilisation de l'index et effectuera une analyse complète. analyse de table
Par exemple : sélectionnez l'identifiant à partir de t où num est nul, vous pouvez définir la valeur par défaut 0 sur num, vous assurer qu'il n'y a pas de valeur nulle dans la colonne num de la table, puis interroger comme ceci : select id from t Where num=0
3. Essayez d'éviter de l'utiliser dans la clause Where ! = ou opérateur, sinon le moteur abandonnera l'utilisation de l'index et effectuera une analyse complète de la table.
4. Essayez d'éviter d'utiliser ou dans la clause Where pour connecter les conditions, sinon le moteur abandonnera l'utilisation de l'index et effectuera une analyse complète de la table (vous pouvez utiliser l'union)
5. in et Not in doivent également être utilisés avec prudence, sinon cela entraînera une analyse complète de la table (n'utilisez pas in si vous pouvez utiliser between)
6 La requête suivante entraînera également une analyse complète de la table.
sélectionnez l'identifiant à partir de t où le nom comme '%李%', sélectionnez l'identifiant à partir de t où le nom comme '%李'
Pour améliorer l'efficacité, vous pouvez utiliser ce format, sélectionnez l'identifiant à partir de t où nom comme « 李% », vous pouvez également envisager une recherche en texte intégral.
7. Évitez d'utiliser des calculs sur les colonnes d'index. En d'autres termes, vous devriez essayer d'éviter les opérations d'expression et les opérations de fonction sur les champs de la clause Where. analyse complète du tableau.
Par exemple : sélectionnez l'identifiant à partir de t où num/2=100 doit être remplacé par : sélectionnez l'identifiant à partir de t où num=100*2
Souvent, c'est une bonne idée de le faire. utiliser existe au lieu de dans Select : existe est utilisé pour vérifier si la sous-requête renverra au moins une ligne de données. La sous-requête ne renvoie réellement aucune donnée, mais renvoie une valeur vraie ou fausse.
sélectionnez num depuis a où num in(select num from b)
Remplacez par l'instruction suivante : sélectionnez num depuis a où existe (sélectionnez 1 depuis b où num=a.num)
9. N'utilisez select from t nulle part, remplacez "" par une liste de champs spécifique et ne renvoyez aucun champ inutilisé. > 3
La différence entre les deux est que le premier SGBD passera directement au premier enregistrement avec DEPT égal à 4, tandis que le second localisera d'abord l'enregistrement avec DEPTNO=3 et avancera vers le premier. DEPT supérieur à 3 enregistrements.
11. Remplacez la clause Have par la clause Where
Tutoriel recommandé :
Tutoriel vidéo MySQLCe 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!