Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL-Datenbankindex

黄舟
Freigeben: 2017-02-28 13:36:33
Original
1432 Leute haben es durchsucht

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))
Nach dem Login kopieren

索引的利弊: >

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

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

Aktionsbeschreibung

< /td>

Clustered-Index verwenden

Nicht- Clustered-Index Index

Spalten werden oft gruppiert und sortiertVerwendenVerwenden
Zurück zu einem bestimmten Bereich. Die Daten innerhalbVerwendetNicht verwendet
Ein oder sehr wenige unterschiedliche WerteNicht verwendet Nicht verwendet
Kleine Anzahl unterschiedlicher Werte VerwendenNicht verwenden
Große Anzahl verschiedener WerteNicht verwendetVerwenden
Häufig aktualisierte SpaltenNicht verwenden Verwenden Sie
FremdschlüsselspalteVerwendenVerwenden
PrimärschlüsselspalteVerwendenVerwenden Sie
Indexspalten häufig ändernNicht verwenden< /td>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;
Nach dem Login kopieren

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

select * from table where c2=2;
Nach dem Login kopieren

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

<br>

<br>

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!