Maison  >  Article  >  base de données  >  index de base de données mysql

index de base de données mysql

黄舟
黄舟original
2017-02-28 13:36:331463parcourir

Un index est un fichier spécial qui contient des pointeurs utilisés par tous les enregistrements. Tout comme la table des matières d’un livre, elle accélère la récupération du livre. Une base de données est presque inutilisable sans index. Quelqu'un a dit un jour en plaisantant que si MySQL utilisant index est une Lamborghini, s'il n'utilise pas d'index, c'est au mieux un trois-roues à propulsion humaine.

Les index sont divisés en index clusterisés et index non clusterisés. Les index clusterisés améliorent la vitesse de récupération de plusieurs lignes, et les index non clusterisés améliorent la vitesse de récupération de lignes uniques de données. Parmi les fonctions de la base de données, trois types d'index peuvent être créés : index unique, index de clé primaire et index clusterisé.

L'index ordinaire est un index sans aucune restriction. Son processus d'établissement est : CREATE INDEX index_name ON table(column(col_name));它是MYIASM数据库引擎默认的BTREE类型的索引。使用navicat导出mysql数据库脚本的时候经常会看到这样的字段。

 <strong> 唯一索引</strong>是在普通索引的基础上保证索引列的值必须唯一,除主键外可以有空值。建立过程:

CREATE UNIQUE INDEX indexName ON table(column(length))

索引的利弊: >

    索引大大提高查询与排序速度,但是会小号数据保存与更新效率。索引需要生成索引文件,当大量使用组合索引的话,索引文件就会迅速膨胀。 针对这些问题,提出了以下优化方法:

1. Quand utiliser un index clusterisé ou un index non clusterisé ?

; >
Description de l'action

Utiliser un index clusterisé

Utiliser des index non- index clusterisé Index
Les colonnes sont souvent regroupées et triées Utiliser Utiliser
Utilisé Non utilisé
Une ou très peu de valeurs distinctes Non utilisé Non utilisé
Petit nombre de valeurs différentes Utiliser Ne pas utiliser
Grand nombre de valeurs différentes Non utilisé Utiliser
Colonnes fréquemment mises à jour Ne pas utiliser Utiliser
Colonne de clé étrangère Utiliser Utiliser
Colonne de clé primaire Utiliser Utiliser
Modifier fréquemment les colonnes d'index Ne pas utiliser Utiliser

2. 使用短索引列。

<strong>    </strong>索引列如果使用varchar(255)的话会让索引文件变大,不利于检索,这255个字符中前10或20个字符能够保证索引唯一的话,就使用这些字段作为索引列即可。

3. like语句

    在数据库操作中不建议使用like语句,但费用不可时,like"%aaa%"不会使用索引而like“aaa%”则可以使用索引。

4. 不要再索引列执行运算,这样会导致索引失效。

5. 使用越小越简单的数据类型越好;尽量避免null;

6. 组合索引仅能对索引最左边的索引进行有效查询。如:

    索引列为c1,c2,以下查询语句有效:

select * form table where c1=1 and c2=2;
 
   select * from table where c1=1;

但对于一下查询语句是无效的:<br>

select * from table where c2=2;

 以上就是mysql数据库-索引的内容,更多相关内容请关注PHP中文网(www.php.cn)!<br>

<br>

<br>

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