Skip to main content

Premièrement, pourquoi devrais-je utiliser un index?

En créant un index unique, vous pouvez assurer le caractère unique de chaque ligne de données dans la base de données.
    Il peut accélérer de manière significative la vitesse de recherche des données (trafic considérablement réduit), c'est aussi la raison la plus importante de créer un index.
    Le serveur aide à éviter les arrangements et les tables temporaires.
    Accélérez les liens entre les tables et les tableaux, en particulier sur l'intégrité de la référence de données.

Comment la vitesse de requête augmente-t-elle?

Les données sur le trouble du convertisseur sont devenues relativement commandées, comme le dossier de vue.

Deuxièmement, spécifiquement, spécifiquement



Si une table est indexée avec de nombreux champs (c'est-à-dire De nombreux index de colonnes), nous devons ensuite commencer à partir de la colonne de gauche et dans la colonne du milieu qui ne peuvent pas être ignorés la colonne d'index des requêtes. Exemple:

Exemple: 3 TRuong A, B, C est réglé sur Index, puis écrivez un, A & AMP; B, A & AMP; B & AMP; C, utiliser des index, au lieu d'utiliser B & AMP; C, A & AMP; C.

Exemple de code spécifique:
Schéma de fréquence:

Non réalisable

Solution :

1. 用到 aselect a,b,c from test where a = "box";2. 用到 a&bselect a,b,c from test where a = "box" and b = 10;select a,b,c from test where a = "box" and (b = 10 or b = 20);select a,b,c from test where a = "box" and b>=10 and b<20;3. 用到 a&b&cselect a,b,c from test where a = "box" and b = 10 and c = "20200101";select a,b,c from test where a = "box" and (b = 10 or b = 20) and (c = "20200101" or c = "20200201");select a,b,c from test where a = "box" and (b = 10 or b = 20) and c >= "20200101" and c <= "20200201";
Si l'indice échoue:

Évitez les opérations de la colonne Index: Calcul. Les fonctions, les types de conversion, etc sinon, l'index ne doit pas être complètement numérisé.

1. 用到 b select a,b,c from test where b = 10; 2. 用到 a or b select a,b,c from test where a = "box" or b = 10 3. 用到 a&c select a,b,c from test where a = "box" and c = "20200101"; 4. 用到 b&c select a,b,c from test where b = 10 and c = "20200101"; Remplacer l'index:

Essayez d'utiliser l'indice de revêtement, ce qui signifie que la colonne de requête est écrasée, réduisant ainsi l'utilisation de commandes de sélection *. Par exemple, l'exemple de la règle de préfixe la plus élevée est remplacé par un nom de colonne spécifique.

Énoncé comme suit:
Le cas commençant par une "%%" peut entraîner une analyse intégrale de l'index. 索引失效的语句:select a,b,c from test where week(c,1) = 24;
, Par exemple:

ou utiliser:


Moins ou dans, lors de l'utilisation de cela, MySQL ne fait pas le plusIndex utilisateur Paramètres, Optimizer MySQL évalue les index selon de nombreux facteurs tels que le rapport indicateur, la taille de la table.

Des utilisations multiples existent au lieu d'être une meilleure option.


Utilisez le pointeur: 可行的:select a,b,c from test where a like 'b%';不可行的:select a,b,c from test where a like '%x';

Essayez d'éviter d'utiliser le curseur car le curseur a une différence plus efficace.


Autre optimisation:


Optimisez la logique des relevés SQL. C'est-à-dire que la combinaison de la logique est réalisée à nouveau.


Dans le processus de pratique spécifique, des explications peuvent être considérées davantage et la méthode spécifique est d'expliquer en haut de la déclaration de requête.

in 语句:SELECT * FROM A WHERE A.id IN (SELECT id FROM B);转换为exists 语句:SELECT * FROM A WHERE EXISTS (SELECT * from B WHERE B.id = A.id);
Explication des détails sur les résultats suivants:

Tous les cas combinés


. Il est temps de créer des index et des index de maintenance accrus en fonction des données accrues, l'espace physique occupera; Les données de maintenance ultérieures maintiennent également un indice, réduisant ainsi la vitesse de maintenance.des données.

Les cas suivants ne conviennent pas pour établir des index

rarement utilisés ou désignent rarement des colonnes pendant le processus de requête.

Seules quelques colonnes de valeurs de données ne doivent pas être créées, telles que le sexe. Pour les colonnes définies sont des images, des types de données de texte et de bits. Modification de performances beaucoup plus grandes que les performances d'accès. Il y a beaucoup de répétitions.
Catégories