100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > MySQL第11天:MySQL索引优化分析之性能分析

MySQL第11天:MySQL索引优化分析之性能分析

时间:2019-10-09 12:25:54

相关推荐

MySQL第11天:MySQL索引优化分析之性能分析

MySQL索引优化分析之性能分析

一、MySQL Query Optimizer

二、MySQL常见瓶颈

三、Explain(执行计划)

1、什么是执行计划?

2、执行计划能干什么?

3、执行计划怎么使用?

4、执行计划中各字段解释

--------------------------------------------------------------------------------------------

一、MySQL Query Optimizer

二、MySQL常见瓶颈

三、Explain(执行计划)

1、什么是执行计划?

使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL如何处理你的SQL语句。分析你的查询语句或是表结构的性能瓶颈。

2、执行计划能干什么?

(1)表的读取顺序(2)数据读取操作的操作类型(3)哪些索引可以使用(4)哪些索引被实际使用(5)表之间的引用(6)每张表有多少行被优化器查询PS:(1)select_type:数据读取操作的操作类型(2)possible_keys:哪些索引可以使用(3)key:哪些索引被实际使用(4)rows:每张表有多少行被优化器查询(rows越少越好)

3、执行计划怎么使用?

1)Explain+SQL语句

2)执行计划包含的信息

4、执行计划中各字段解释

字段1:id:

1)select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。

2)三种情况:

第一种情况id相同:执行顺序由上而下;

第二种情况id不同:如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行

第三种情况id相同和不同,同时存在

字段2:select_type

字段3:table

显示这一行的数据是关于哪张表的

字段4:type

字段5:possible_keys

理论上用到的索引。

字段6:key

实际用到的索引。

字段7:key_len

字段8:ref

字段9:rows

字段10:extra

extra:包含不适合在其他列中显示但十分重要的额外信息。常见的有:(1)using filesort(2)using temporary(3)using index(4)using where(5)using join buffer(6)impossible where(7)select tables optimized away(8)distinct

PS:Using temporary:使用了临时表保存中间结果,MySQL在对查询结果排序时使用临时表,常见于排序order by和分组查询group by。

1、Using filesort

2、Using temporary

PS:group by尽量根据索引的个数和顺序来,否则会产生文件列排序和临时表(using filesort、using temorary),影响查询性能。

3、Using index

4、using join buffer

使用了链接缓存

5、impossible where

where子句的值总是false,不能用来获取任何元组

6、impossible where

7、select tables optimized away

8、distinct

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。