Heim  >  Artikel  >  Datenbank  >  Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

coldplay.xixi
coldplay.xixinach vorne
2020-12-11 17:34:167944Durchsuche

MySQL-TutorialSpaltenbeispiele erläutern die Verwendung von MySQL-IndizesBeispiele zur Einführung in die Verwendung von MySQL-Indizes

Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)

Verwendungsbeispiele für MySQL-Indizes

    • Eins . Langsames Abfrageprotokoll
    • 2. Abfrageanalysator – Erläuterung
    • 3. Grundlegende Verwendung des Index
    • 4. Zusammengesetzter Index
    • 5. Abdeckindex

1. Langsames Abfrageprotokoll

//查看是否开启慢查询日志
mysql> show variables like '%slow%';//临时开启慢查询日志
mysql> set global slow_query_log=ON;//查看是否开启慢查询日志
mysql> show variables like '%slow%';

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

//查询超过多少时间就可以记录,上面是如果超过10秒就要记录
mysql> show variables like '%long%';//改成一秒,如果超过一秒就写到慢日志里面去(一般一秒是最好的)mysql> set long_query_time=1;//查看日记存储方式,默认FILE
mysql> show variables like '%log_output%';// 慢查询日志文件所在位置
mysql> show variables like '%datadir%';

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

//响应时间是3秒,超过了原先设定的一秒
mysql> select sleep(3);

Beispiele zur Einführung in die Verwendung von MySQL-Indizes
Als wir den Ordner überprüften, stellten wir fest, dass er im langsamen Abfrageprotokoll gespeichert war. In diesem Teil wird erklärt, wie man langsameres SQL mithilfe des langsamen Protokolls findet Sagen Sie,

warum es langsam ist

und wie Sie es schneller machen können. Beispiele zur Einführung in die Verwendung von MySQL-Indizes

2. Abfrageanalysator – erklären

Funktion: Dadurch können Sie erkennen, wo die SQL langsam ist und welche Aspekte optimiert werden müssen

Spalte: Wir erstellen eine

Mitarbeiterdatentabelle

create table employee(
	id int not null auto_increment primary key,
	name varchar(30) comment '姓名',
	sex varchar(1) comment '性别',
	salary int comment '薪资(元)',
	dept varchar(30) comment '部门');insert into employee(name, sex, salary, dept) values('张三', '男', 5500, '部门A');insert into employee(name, sex, salary, dept) values('李洁', '女', 4500, '部门C');insert into employee(name, sex, salary, dept) values('李小梅', '女', 4200, '部门A');insert into employee(name, sex, salary, dept) values('欧阳辉', '男', 7500, '部门C');insert into employee(name, sex, salary, dept) values('李芳', '女', 8500, '部门A');insert into employee(name, sex, salary, dept) values('张江', '男', 6800, '部门A');insert into employee(name, sex, salary, dept) values('李四', '男', 12000, '部门B');insert into employee(name, sex, salary, dept) values('王五', '男', 3500, '部门B');insert into employee(name, sex, salary, dept) values('马小龙', '男', 6000, '部门A');insert into employee(name, sex, salary, dept) values('龙五', '男', 8000, '部门B');insert into employee(name, sex, salary, dept) values('冯小芳', '女', 10000, '部门C');insert into employee(name, sex, salary, dept) values('马小花', '女', 4000, '部门B');insert into employee(name, sex, salary, dept) values('柳峰', '男', 8800, '部门A');
//通过explain解读他,后面加一个\G便于阅读
mysql> explain select * from employee where name='柳峰'\G;//扫描快捷
mysql> explain select * from employee where id=13\G;

Effekt: Wie im Bild unten gezeigt, können Sie sehen, warum es vorher so langsam war und vier Sekunden Reaktionszeit erforderte

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Beispiele zur Einführung in die Verwendung von MySQL-Indizes3. Grundlegende Verwendung des Index

mysql> show index from employee\G;//主键会默认建一个id索引

Beispiele zur Einführung in die Verwendung von MySQL-IndizesVerbesserte Indexerstellungseffizienz

//查询分析
mysql> explain select * from employee where name='柳峰';//创建普通索引
mysql> create index idx_name on employee(name);

//删除
mysql> drop index idx_name on employee;
Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Lehrerliste:

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Wenn Sie die Like-Suche verwenden, bleibt die Effizienz gleich, es hängt also davon ab, wie Sie sie verwenden

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Beispiele zur Einführung in die Verwendung von MySQL-Indizes 4. Zusammengesetzter Index

//查的时候可以看到一个主键索引
mysql> show index from employee\G;

Beispiele zur Einführung in die Verwendung von MySQL-IndizesDerzeit handelt es sich um einen globalen Scan e

5. Index abdecken Daten abfragen

select * from employee where name ='柳峰';//查询分析
explain select * from employee where name ='柳峰'\G;
Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Nur ID prüfen

//创建索引
create index idx_name_salary_dept on employee(name,salary,dept);//查询分析
explain select * from employee where name ='柳峰'\G;
Beispiele zur Einführung in die Verwendung von MySQL-Indizes

// name和salary
mysql> explain select * from employee where name ='柳峰' and salary=8800\G;//name和dept
mysql> explain select * from employee where name ='柳峰' and dept='部门A'\G;

Beispiele zur Einführung in die Verwendung von MySQL-Indizes

Das obige ist der detaillierte Inhalt vonBeispiele zur Einführung in die Verwendung von MySQL-Indizes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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