Heim >Datenbank >MySQL-Tutorial >Beispiele zur Einführung in die Verwendung von MySQL-Indizes
Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)
//查看是否开启慢查询日志 mysql> show variables like '%slow%';//临时开启慢查询日志 mysql> set global slow_query_log=ON;//查看是否开启慢查询日志 mysql> show variables like '%slow%';
//查询超过多少时间就可以记录,上面是如果超过10秒就要记录 mysql> show variables like '%long%';//改成一秒,如果超过一秒就写到慢日志里面去(一般一秒是最好的)mysql> set long_query_time=1;//查看日记存储方式,默认FILE mysql> show variables like '%log_output%';// 慢查询日志文件所在位置 mysql> show variables like '%datadir%';
//响应时间是3秒,超过了原先设定的一秒 mysql> select sleep(3);
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,
und wie Sie es schneller machen können.
2. Abfrageanalysator – erklärenFunktion: Dadurch können Sie erkennen, wo die SQL langsam ist und welche Aspekte optimiert werden müssen
Spalte: Wir erstellen einecreate 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
3. Grundlegende Verwendung des Index
mysql> show index from employee\G;//主键会默认建一个id索引
Verbesserte Indexerstellungseffizienz
//查询分析 mysql> explain select * from employee where name='柳峰';//创建普通索引 mysql> create index idx_name on employee(name);
//删除 mysql> drop index idx_name on employee;
Lehrerliste:
Wenn Sie die Like-Suche verwenden, bleibt die Effizienz gleich, es hängt also davon ab, wie Sie sie verwenden
4. Zusammengesetzter Index
//查的时候可以看到一个主键索引 mysql> show index from employee\G;
Derzeit handelt es sich um einen globalen Scan e
5. Index abdecken Daten abfragenselect * from employee where name ='柳峰';//查询分析 explain select * from employee where name ='柳峰'\G;Nur ID prüfen
//创建索引 create index idx_name_salary_dept on employee(name,salary,dept);//查询分析 explain select * from employee where name ='柳峰'\G;
// 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;
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!