Heim >Datenbank >MySQL-Tutorial >MySQL-Datenbankindex

MySQL-Datenbankindex

黄舟
黄舟Original
2017-02-28 13:36:331511Durchsuche

Ein Index ist eine spezielle Datei, die Zeiger enthält, die von allen Datensätzen verwendet werden. Genau wie das Inhaltsverzeichnis eines Buches beschleunigt es das Auffinden eines Buches. Ohne Indizes ist eine Datenbank nahezu unbrauchbar. Jemand sagte einmal scherzhaft: Wenn MySQL einen Index verwendet, ist es ein Lamborghini, wenn es keinen Index verwendet, ist es bestenfalls ein von Menschen angetriebenes Dreirad.

Indizes werden in Clustered-Indizes und Nicht-Clustered-Indizes unterteilt. Clustered-Indizes verbessern die Abrufgeschwindigkeit mehrerer Zeilen, und nicht gruppierte Indizes verbessern die Abrufgeschwindigkeit einzelner Datenzeilen. Unter den Funktionen der Datenbank können drei Arten von Indizes erstellt werden: eindeutiger Index, Primärschlüsselindex und Clustered-Index.

Gewöhnlicher Index ist ein Index ohne Einschränkungen: CREATE INDEX index_name ON table(column(col_name));它是MYIASM数据库引擎默认的BTREE类型的索引。使用navicat导出mysql数据库脚本的时候经常会看到这样的字段。

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

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

索引的利弊: >

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

1. Wann sollte ein Clustered-Index oder ein Nicht-Clustered-Index verwendet werden?

Aktionsbeschreibung

Clustered-Index verwenden

Nicht- Clustered-Index Index
Spalten werden oft gruppiert und sortiert Verwenden Verwenden
Zurück zu einem bestimmten Bereich. Die Daten innerhalb Verwendet Nicht verwendet
Ein oder sehr wenige unterschiedliche Werte Nicht verwendet Nicht verwendet
Kleine Anzahl unterschiedlicher Werte Verwenden Nicht verwenden
Große Anzahl verschiedener Werte Nicht verwendet Verwenden
Häufig aktualisierte Spalten Nicht verwenden Verwenden Sie
Fremdschlüsselspalte Verwenden Verwenden
Primärschlüsselspalte Verwenden Verwenden Sie
Indexspalten häufig ändern Nicht verwenden Verwenden

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>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn