您的位置:首页 > 产品设计 > UI/UE

mysql 数据库优化 pt-query-digest

2016-01-21 16:54 471 查看
通过慢查日志发现有问题的sql

1.查询次数多且每次查询占用时间长的sql

通常为pt-query-digest分析的前几个查询

2.IO大的sql

注意pt-query-digest分析中的ROW examine项

3.未命中索引的sql

注意pt-query-digest分析中的rows examine(扫描) 和rows send(发送行数)的对比

通过explain +sql语句 查询sql 的执行计划



分析sql查询:

explain返回各列的含义

table :显示这行数据是关于那张表

type:显示连接使用了哪种类型从最好到最差,类型为const,eq_reg,ref,range,index,all

possible_keys显示可能应用的索引,为空表示没有可能的索引,

key:实际使用的索引,如果为null,表示没有使用索引,

key_len:使用的索引长度,在不损失精确性的情况下,长度越短越好

ref:显示索引的那一列被使用了,

rows:mysql认为必须检查的用来返回请求数据的行数(表扫描的行数)

extra列需要注意的返回值

Using filesort:看到这个的时候,查询就需要优化,mysql需要进行额外的步骤来发现如何返回的行排序,根据连接类型以及存储的排序键值和匹配条件的全部行的

行指针来排序全部行(文件排序 orde by)

Using temporary 看到这个的时候,查询需要优化了,这里,mysql需要创建一个临时表来存储结果,通常在使用order by 上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: