Maison > base de données > SQL > le corps du texte

Plusieurs méthodes d'optimisation SQL

silencement
Libérer: 2019-06-05 16:04:19
original
27227 Les gens l'ont consulté

Plusieurs méthodes d'optimisation SQL

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

peut être interrogé comme ceci :

select id from t where num=10
union all
select id from t where num=20
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

6 La requête suivante entraînera également une analyse complète de la table :

select id from t where name like &#39;%abc%&#39;
Copier après la connexion

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
Copier après la connexion

doit être remplacé par :

select id from t where num=100*2
Copier après la connexion

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)=&#39;abc&#39;--name以abc开头的id
Copier après la connexion

doit être remplacé par :

select id from t where name like &#39;abc%&#39;
Copier après la connexion

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
Copier après la connexion

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(...)
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:php.cn
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!