Mysql分析优化查询的方式

1.通过create index idx_colunmsName on tableName(columns)为某个表的某些字段创建索引,注意主键和唯一键都会自动创建索引;

如为表student的name和class字段创建联合索引:create index idx_name_class on student(name,class);

2.通过explain或describe来分析查询语句的效率和一些配置属性:

如:describe select* from student where uid=1;会输出如下几列:

1.id列,整个查询中select的位置;

2.select_type列,查询类型,一般都是simple;

3.table列,此查询对应的表;

4.type列,连接类型,该列中存储很多值,范围从const到all;

5.possible_keys列,重要,指此查询语句里可以用到的索引;(注意,where条件里如果是两个判断是and,那么如果第一个

6.key列,重要,指出此查询里实际定位记录的列是哪个(主键稍微特殊直接显示的是Primary而非列字段名)

7.rows列,重要,用来查看执行此查询所需要检验的 行数,越小越好

扫描二维码关注公众号,回复: 37054 查看本文章

8.key_len列,重要,使用的索引的长度,一般越小越好;

9.extra 中出现以下 2 项意味着 MYSQL 根本不能使用索引,效率会受到重大影响。应尽可能对此进行优化。

extra 项 说明
Using filesort 表示 MySQL 会对结果使用一个外部索引排序,而不是从表里按索引次序读到相关内容。可能在内存或者磁盘上进行排序。MySQL 中无法利用索引完成的排序操作称为“文件排序”
Using temporary 表示 MySQL 在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。

猜你喜欢

转载自www.cnblogs.com/silentdoer/p/8903039.html
今日推荐