mysql 数据库优化 pt-query-digest

本文深入探讨了通过慢查询日志识别问题SQL的方法,包括查询次数多且占用时间长的SQL、IO消耗大的SQL以及未命中索引的SQL。同时,通过explain+SQL语句查询SQL执行计划,详细解析了各个列的含义,如table、type、key等,并强调了extra列中Usingfilesort和Usingtemporary的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过慢查日志发现有问题的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 上



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值