Heim  >  Artikel  >  Datenbank  >  Was ist ein MySQL-Index? Eine kurze Diskussion zum MySQL-Index

Was ist ein MySQL-Index? Eine kurze Diskussion zum MySQL-Index

青灯夜游
青灯夜游nach vorne
2018-11-22 15:15:493677Durchsuche

Der Inhalt dieses Artikels ist: Was ist der MySQL-Index? Lassen Sie uns kurz über den MySQL-Index sprechen, damit jeder ein einfaches Verständnis des MySQL-Index hat. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

1: Was ist ein Index

Der Index selbst ist eine unabhängige Speichereinheit, in der ein bestimmtes Feld der Datentabelle aufgezeichnet wird und der dem Feld entsprechende physische Raum. Im Index gibt es Algorithmusunterstützung, wodurch die Abfragegeschwindigkeit sehr hoch sein kann. [Empfohlene verwandte Video-Tutorials: MySQL-Tutorial]

Mit dem Index können wir Daten basierend auf dem Index als Bedingung abfragen, und die Geschwindigkeit ist sehr schnell

 1. Der Index selbst verfügt über „Algorithmus “-Unterstützung, mit der wir schnell das Schlüsselwort (Feld) finden können, das wir finden möchten

2. Das Index--Feld hat eine direkte Entsprechung zur physischen Adresse und hilft uns, die gesuchten Informationen schnell zu finden

Alle Felder in einer Datentabelle können indiziert werden

Zwei, Indextyp

1, vier Typen:

(1) Primärschlüssel Primärschlüssel

muss auto_increment für den Primärschlüsselindex festlegen, index Der Wert der Spalte darf nicht null sein und muss eindeutig sein

(2) eindeutiger Index

Der Wert der Indexspalte kann nicht wiederholt werden, aber Nullwerte sind erlaubt

(3) Gewöhnlicher Indexindex

Der Wert der Indexspalte kann wiederholt werden.

(4) Volltextindex Volltextindex

Myisam-Datentabelle kann diesen Index festlegen

2, zusammengesetzter Index

Der Index besteht aus zwei oder mehr Er besteht aus Spalten und wird als zusammengesetzter Index oder gemeinsamer Index bezeichnet.

3. Index erstellen

1. Beim Erstellen einer Tabelle

1), wenn Sie eine Mitgliedstabelle erstellen und verschiedene Indizes erstellen.

create table member(
  id  int not null auto_increment comment '主键',
  name char(10) not null default '' comment '姓名',
  height tinyint not null default 0 comment '身高',
  old tinyint not null default 0 comment '年龄',
  school varchar(32) not null default '' comment '学校',
  intro text comment '简介',
  primary key (id),  // 主键索引
  unique index nm (name), //唯一索引,索引也可以设置名称,不设置名字的话,默认字段名
  index (height),   //普通索引
  fulltext index (intro) //全文索引
)engine = myisam charset = utf8;

2), einen Index zur vorhandenen Datentabelle hinzufügen

//注:一般设置主键后,会把主键字段设置为自增。(alter table member  modify id  int not null auto_increment comment '主键';)
alter table member add primary key(id); 
alter table member add unique key nm (name);
alter table member add index(height);
alter table member add fulltext index(intro);

3), einen zusammengesetzten Index erstellen (der Index hat keinen Namen, das erste Feld wird standardmäßig als Name herausgenommen )

alter table member add unique key nm (name,height);

2, Index löschen  

alter table 表名 drop primary key;//删除主键索引

Hinweis:

Wenn das auto_increment-Attribut in diesem Primärschlüsselfeld vorhanden ist, muss es zuerst gelöscht werden. (Tabelle ändern, Tabellennamen ändern, Primärschlüssel int, nicht null, Kommentar „Primärschlüssel“)

Entfernen Sie das auto_increment-Attribut des Datentabellenfelds;

alter table 表名 drop  index 索引名称;  //删除其它索引(唯一,普通,全文)

Beispiel :

alter table member drop index nm;

4. EXPLAIN Überprüfen Sie, ob der Index

Spezifische Operationen verwendet: EXPLAIN ​​SQL-Anweisung abfragen

dies ist der Fall, wenn der Primärschlüsselindex nicht festgelegt ist: (geringe Ausführungsgeschwindigkeit und Effizienz)

Nach dem Hinzufügen des Primärschlüssels:

5. Geeignete Szenarien für die Indizierung

1. Wo sind die Abfragebedingungen? zur Indizierung geeignet).

2. Sortierabfrage (Reihenfolge nach Feld)

6. Indexprinzipien

1. Feldunabhängigkeit Prinzip

select * from emp where empno = 1325467;//empno条件独立,使用索引
select * from emp where empno+2 = 1325467;//empno条件不独立,只有独立的条件字段才可以使用索引

2, linkes Prinzip

Fuzzy-Abfrage, wie & _

 %: Mehrere Fuzzy-Inhalte zuordnen

 _: Verknüpfen Sie einen Fuzzy-Inhalt

Beispiel:

select * form 表名 where a like "beijing%";//使用索引
select * from 表名 where a like "beijing_";//使用索引
select * from 表名 where a like "%beijing%”;//不使用索引
select * from 表名 where a like "%beijing";//不使用索引

3, zusammengesetzter Indexindex (a,b)

select * from 表名 where a like "beijing%";//使用索引
select * from 表名 where b like "beijing%;//不使用索引
select * form 表名 where a like "beijing%" and b like "beijng%";//使用索引

4 , oder-Prinzip

Die zugehörigen Bedingungen rund um OR müssen alle Indizes haben, bevor der Index verwendet werden kann.

Beispiel: (Index (a), Index (b)) hat geholfen.

Das obige ist der detaillierte Inhalt vonWas ist ein MySQL-Index? Eine kurze Diskussion zum MySQL-Index. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen