5.4MySQL查询优化考点

2017-10-12  本文已影响14人  followyounger1
Paste_Image.png

考官考点
查找分析查询速度慢的原因

优化查询过程中的数据访问
游湖长难的查询语句
游湖特定类型的查询语句

分析SQL查询慢的方法
记录慢查询日志
分析查询日志,不要直接打开慢查询日志进行分析,这样比较浪费时间和经理,可以使用pt-query-digest工具进行分析

Paste_Image.png Paste_Image.png Paste_Image.png

是作为我们的一个计数器

Paste_Image.png

观察不正常的进程

explain,非常重要,他可以帮我们肥西单条语句。

查询的行数等等


Paste_Image.png Paste_Image.png

优化查询过程中的数据访问

访问太多数据导致查询性能下降
确定应用程序是否在检索大量超过需要的数据,可能是太多行或列

避免使用如下SQL语句
查询不需要的记录,使用limit解决

Paste_Image.png

重复查询相同的数据,可以缓存数据,下次直接读取缓存。

Paste_Image.png

比如,我只需要5行数据,但是却扫描了200行数据,,剩下的数据就白扫了。

加索引,就能解决这个问题

Paste_Image.png

如果我是第三范式,我经常查 连表查询,我可以把一个表,冗余到另一个表里面。。。
可以用空间来换取我们的时间

Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png

所以,不要使用 count(列名)

Paste_Image.png Paste_Image.png

没有索引,一定要建立索引。

Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png

先定位,,那些SQL语句,会比较慢,根据前面的四种方案,
查询日志
show profile
show processlist
show status

explain

先从索引的监督考虑,索引没问题的话,
再从数据访问的角度来分析,

Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读