Maison > base de données > SQL > Quelles sont les méthodes d'optimisation SQL ?

Quelles sont les méthodes d'optimisation SQL ?

王林
Libérer: 2020-07-01 15:55:05
original
8946 Les gens l'ont consulté

Méthodes d'optimisation SQL : 1. Essayez d'éviter d'utiliser [select *], les champs inutiles réduiront l'efficacité des requêtes ; 2. Évitez d'utiliser in et not in, vous pouvez choisir entre et existe à la place ; , vous pouvez choisir l'union à la place.

Quelles sont les méthodes d'optimisation SQL ?

Méthode d'optimisation SQL :

(apprentissage recommandé : tutoriel mysql)

1. un index dans la table, donnant la priorité aux champs utilisés par où et groupés par.

2. Essayez d'éviter d'utiliser select *. Le renvoi de champs inutiles réduira l'efficacité des requêtes. Comme suit :

SELECT * FROM t
Copier après la connexion

Méthode d'optimisation : utilisez des champs spécifiques au lieu de *, et ne renvoyez que les champs utilisés.

3. Essayez d'éviter d'utiliser in et not in, ce qui entraînerait l'abandon de l'index par le moteur de base de données et une analyse complète de la table. Comme suit :

SELECT * FROM t WHERE id IN (2,3)
SELECT * FROM t1 WHERE username IN (SELECT username FROM t2)
Copier après la connexion

Méthode d'optimisation : S'il s'agit d'une valeur continue, elle peut être remplacée par between. Comme suit :

SELECT * FROM t WHERE id BETWEEN 2 AND 3
Copier après la connexion

S'il s'agit d'une sous-requête, elle peut être remplacée par exist. Comme suit :

SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username = t2.username)
Copier après la connexion

4. Essayez d'éviter d'utiliser ou, ce qui entraînerait l'abandon de l'index par le moteur de base de données et une analyse complète de la table. Comme suit :

SELECT * FROM t WHERE id = 1 OR id = 3
Copier après la connexion

Méthode d'optimisation : Union peut être utilisée à la place de ou. Comme suit :

SELECT * FROM t WHERE id = 1
UNION
SELECT * FROM t WHERE id = 3
Copier après la connexion

(PS : Si les champs des deux côtés de ou sont les mêmes, comme dans l'exemple. Il semble que les deux méthodes aient à peu près la même efficacité, même si l'union scanne l'index, ou analyse la table entière)

5. Essayez d'éviter les requêtes floues au début des champs, ce qui entraînerait l'abandon de l'index par le moteur de base de données et une analyse complète de la table. Comme suit :

SELECT * FROM t WHERE username LIKE '%li%'
Copier après la connexion

Méthode d'optimisation : essayez d'utiliser une requête floue après le champ. Comme suit :

SELECT * FROM t WHERE username LIKE 'li%'
Copier après la connexion

6. Essayez d'éviter de juger des valeurs nulles, ce qui entraînerait l'abandon de l'index par le moteur de base de données et une analyse complète de la table. Comme suit :

SELECT * FROM t WHERE score IS NULL
Copier après la connexion

Méthode d'optimisation : Vous pouvez ajouter une valeur par défaut de 0 au champ et juger la valeur 0. Comme suit :

SELECT * FROM t WHERE score = 0
Copier après la connexion

7. Essayez d'éviter d'effectuer des expressions et des opérations de fonction sur le côté gauche du signe égal dans la condition Where, ce qui entraînerait l'abandon de l'index par le moteur de base de données et une analyse complète de la table. Comme suit :

SELECT * FROM t2 WHERE score/10 = 9
SELECT * FROM t2 WHERE SUBSTR(username,1,2) = 'li'
Copier après la connexion

Méthode d'optimisation : les expressions et les opérations de fonction peuvent être déplacées vers la droite du signe égal. Comme suit :

SELECT * FROM t2 WHERE score = 10*9
SELECT * FROM t2 WHERE username LIKE 'li%'
Copier après la connexion

8 Lorsque la quantité de données est importante, évitez d'utiliser la condition où 1=1. Habituellement, afin de faciliter l'assemblage des conditions de requête, nous utiliserons cette condition par défaut, et le moteur de base de données abandonnera l'index et effectuera une analyse complète de la table. Comme suit :

SELECT * FROM t WHERE 1=1
Copier après la connexion

Méthode d'optimisation : utilisez le code pour juger lors de l'assemblage de SQL S'il n'y a pas de où, ajoutez où, s'il y a où, ajoutez et.

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