Maison  >  Article  >  base de données  >  Les index MySQL sont-ils utilisés automatiquement ?

Les index MySQL sont-ils utilisés automatiquement ?

little bottle
little bottleoriginal
2019-05-10 16:44:333024parcourir

L'index MySQL peut être utilisé automatiquement, et les utilisateurs peuvent également forcer son utilisation. MYSQL utilise l'index de deux manières après la création de l'index : l'une est que l'optimiseur de requêtes de la base de données détermine automatiquement s'il doit l'utiliser ; l'autre est que l'utilisateur peut forcer l'utilisation de l'index lors de l'écriture d'instructions SQL.

Les index MySQL sont-ils utilisés automatiquement ?

Il existe deux manières pour MYSQL d'utiliser l'index après avoir créé l'index : premièrement, l'optimiseur de requêtes de la base de données détermine automatiquement s'il doit utiliser l'index ; l'optimiseur de requêtes de la base de données détermine automatiquement s'il convient d'utiliser l'index ; les utilisateurs peuvent forcer l'utilisation d'index lors de l'écriture d'instructions SQL.

(Tutoriel recommandé : Tutoriel vidéo mysql )

MYSQL utilise l'index de deux manières après avoir créé l'index :

1. L'optimiseur de requêtes de la base de données détermine automatiquement s'il convient d'utiliser un index ;

2. Les utilisateurs peuvent forcer l'utilisation d'index lors de l'écriture d'instructions SQL

Les deux index suivants sont utilisés. Façons d'expliquer

La première consiste à utiliser automatiquement l'index.

Après avoir reçu l'instruction de requête, la base de données vérifiera les conditions de requête derrière l'instruction Where, vérifiera quels index se trouvent sur la table, puis les fera correspondre en fonction des conditions de requête et des index.
La correspondance des conditions de requête et de l'index comprend la correspondance du champ de requête et du champ d'index ainsi que la correspondance du type de requête et du type d'index. Le premier est facile à comprendre, c'est-à-dire qu'un index doit être construit sur les attributs des conditions de requête, tandis que le second signifie que les conditions de requête doivent pouvoir utiliser des index. Par exemple, le jugement d'égalité et la requête par plage peuvent utiliser l'arbre B+. index, tandis que l'index de hachage ne peut être appliqué qu'à des valeurs égales.

Après avoir trouvé un index qui correspond aux conditions de la requête, une estimation du coût est effectuée pour décider d'utiliser ou non l'index. L'estimation du coût est principalement basée sur le nombre d'enregistrements accessibles. d'enregistrements accessibles via les comptes d'index pour le nombre total d'enregistrements de la table. Si le nombre est supérieur à 15 %, l'index ne sera pas utilisé mais une analyse complète de la table sera utilisée, car le coût d'utilisation de l'index est plus élevé à ce moment-là. L’utilisation d’index améliorera l’efficacité dans la plupart des cas.

Après le jugement de l’optimiseur, celui-ci décidera finalement d’utiliser ou non l’index.

La deuxième méthode consiste à forcer l'utilisation des index, principalement via des instructions SQL

select * from table force index(PRI) limit 2;(强制使用主键)
select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")
select * from table force index(PRI,ziduan1_index) limit 2;(强制使用索引"PRI和ziduan1_index")

Vous pouvez également interdire l'utilisation des index

select * from table ignore index(PRI) limit 2;(禁止使用主键)
select * from table ignore index(ziduan1_index) limit 2;(禁止使用索引"ziduan1_index")
select * from table ignore index(PRI,ziduan1_index) limit 2;(禁止使用索引"PRI,ziduan1_index")

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!

Déclaration:
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