Maison  >  Article  >  base de données  >  Exemples introduisant l'utilisation des index MySQL

Exemples introduisant l'utilisation des index MySQL

coldplay.xixi
coldplay.xixiavant
2020-12-11 17:34:167974parcourir

Tutoriel mysqlDes exemples de colonnes expliquent l'utilisation des index MySQLExemples introduisant l'utilisation des index MySQL

Autres recommandations d'apprentissage gratuites associées : mysql Tutoriel(Vidéo)

Exemples d'utilisation de l'index MySQL

    • 1.
    • 2. Analyseur de requêtes - expliquer
    • 3. Utilisation de base des index
    • 4. Index composite
    • 5. Je suis allé vérifier le dossier, j'ai trouvé qu'il avait été stocké dans le journal des requêtes lentes

Cette partie explique comment savoir grâce au journal des requêtes lentes qui

est plus lent

SQL, la partie suivante expliquera Exemples introduisant lutilisation des index MySQL pourquoi il est lent

et comment le rendre plus rapide.

Exemples introduisant lutilisation des index MySQL2. Analyseur de requêtes - expliquer

Exemples introduisant lutilisation des index MySQLFonction
 : Grâce à cela, vous pouvez savoir où le SQL est lent et quels aspects doivent être optimisés dans le

colonne : Nous créons un Exemples introduisant lutilisation des index MySQLtable de données des employés

//查看是否开启慢查询日志
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%';

Effet : Comme indiqué ci-dessous, vous pouvez voyez pourquoi c'était si lent avant, nécessitant un temps de réponse de quatre secondes

3 Utilisation de base de l'index

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

Exemples introduisant lutilisation des index MySQL. Amélioration de l'efficacité de la création d'index

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');

Exemples introduisant lutilisation des index MySQL

//通过explain解读他,后面加一个\G便于阅读
mysql> explain select * from employee where name='柳峰'\G;//扫描快捷
mysql> explain select * from employee where id=13\G;

Liste des enseignants : Exemples introduisant lutilisation des index MySQL

Si vous utilisez la recherche similaire, l'efficacité est toujours le même, il faut donc regarder Comment utilisez-vous

Exemples introduisant lutilisation des index MySQL

4. L'indice composite

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

Exemples introduisant lutilisation des index MySQL est actuellement une analyse globale

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

Exemples introduisant lutilisation des index MySQL

Créer un index

//删除
mysql> drop index idx_name on employee;

Exemples introduisant lutilisation des index MySQL

Vérifier que l'index peut être indexé avec le nom

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

Exemples introduisant lutilisation des index MySQL

Aucun nom ne peut pas utiliser l'index

select * from employee where name ='柳峰';//查询分析
explain select * from employee where name ='柳峰'\G;

Exemples introduisant lutilisation des index MySQL

5. Index de couverture

En suivant les étapes ci-dessus, nous pouvons voir quatre index, le premier est Exemples introduisant lutilisation des index MySQL Index de clé primaire

, suivi de

index composé

Exemples introduisant lutilisation des index MySQL

//创建索引
create index idx_name_salary_dept on employee(name,salary,dept);//查询分析
explain select * from employee where name ='柳峰'\G;

Comment déclencher

Exemples introduisant lutilisation des index MySQL Nous utilisons l'identifiant comme données de requête

// 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;

Vérifiez uniquement l'identifiant

mysql> explain select * from employee where  salary=8800;mysql> explain select * from employee where  dept='部门A';
name_salary_dept
mysql> show index from employee;

Exemples introduisant lutilisation des index MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer