1. Pour optimiser la requête, essayez d'éviter les analyses de table complètes. Pensez d'abord à créer des index sur les colonnes impliquées dans Where et à trier par.
2. Essayez d'éviter de porter des 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 de la table, telle que :
select id from t where num is null
peut être défini sur num La valeur par défaut est 0. Assurez-vous qu'il n'y a pas de valeur nulle dans la colonne num du tableau, puis interrogez comme ceci :
select id from t where num=0
Essayez d'éviter d'utiliser le != ou. <> dans la clause Where, sinon le moteur abandonne l'utilisation de l'index et effectue 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, telle que :
select id from t where num=10 or num=20
peut être interrogé comme ceci :
select id from t where num=10 union all select id from t where num=20
5.in et non in doit également être utilisé avec prudence, sinon cela entraînera une analyse complète de la table, telle que :
select id from t where num in(1,2,3)
For les valeurs continues, si vous pouvez les utiliser entre, ne les utilisez pas dans :
select id from t where num between 1 and 3
6 La requête suivante entraînera également une analyse complète de la table :
select id from t where name like '%abc%'
7. Les opérations d'expression sur les champs de la clause Where doivent être évitées autant que possible, car le moteur abandonnerait l'utilisation de l'index et effectuerait une analyse complète de la table. Par exemple :
select id from t where num/2=100
doit être remplacé par :
select id from t where num=100*2
8. Vous devez essayer d'éviter d'effectuer des opérations fonctionnelles sur les champs de la clause Where, ce qui entraînerait le moteur abandonner l'utilisation de l'index et effectuer une analyse complète de la table. Par exemple :
select id from t where substring(name,1,3)='abc'--name以abc开头的id
doit être remplacé par :
select id from t where name like 'abc%'
9. N'effectuez pas de fonctions, d'opérations arithmétiques ou d'autres opérations d'expression sur le côté gauche de "=" dans. la clause Where. Sinon, le système pourrait ne pas être en mesure d'utiliser l'index correctement.
10. Lors de l'utilisation d'un champ d'index comme condition, si l'index est un index composite, le premier champ de l'index doit être utilisé comme condition pour garantir que le système utilise l'index,
Sinon, l'index ne sera pas utilisé et l'ordre des champs doit être autant que possible cohérent avec l'ordre de l'index.
11. N'écrivez pas de requêtes dénuées de sens. Par exemple, si vous devez générer une structure de table vide :
select col1,col2 into #t from t where 1=0
Ce type de code ne renverra aucun jeu de résultats, mais il consommera le système. ressources et devrait être modifié. Cela ressemble à ceci :
create table #t(...)
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!