mysql基础

3、剖析mysql查询(高性能mysql第三章)

开启慢查询的开销很低,只需要担心的是日志占用的磁盘空间,mysql还有另一种查询日志,被称为通用日志查询,在mysql5.0之后慢查询日志可以通过设置long_query_time为0来捕获所有的查询日志,并且查询的响应时间是微妙级别,

剖析单条sql语句的三种方法 具体的指标需要学习

①可以通过此命令知道整个执行中耗时的详细情况,show profiles 详细信息可以执行show profile for query 1如果要是用shcema,可以使用set @query_id = ? select sum(duration) from information_schema.profile from shcema,profileing where query_id=@query_id

(并且可以使用子查询进行排序),开销极低,可以反复执行

②show status 既有全局的计数,也可以有会话级的计数,这个命令能够让我们知道是否创建了临时表,临时表是否用到索引,刷脏变化,而explain无法告诉你是内存临时表还是磁盘临时表,而内存临时表和磁盘临时表的性能差别是很大的,开销极低,可以反复执行

③performance schema表 (mysql5.5)这个可以让我们知道系统中等待的原因,但无法当做通用的剖析工具,无法提供查询执行阶段的细节信息和计时信息,不建议使用

间歇性卡顿排查

①show gloabal status有一些指标会突变,可以通过awk命令排查线程数指标(会每秒捕获show global_status的指标)如果应用使用了连接池thread_connected不会太大变化,但线程数飙升,则有可能应用遇到了瓶颈,导致锁的等待,或者缓存雪崩

②show processlist

查询线程池的状态

③慢查询日志,分析时段查询统计,找到高峰期,高峰期收集数据,利用前面讲的命令(还有其他命令show innodb status或者第三方工具)

总结

总之性能下降可能是

资源过度使用(查询为主的数据库疯狂刷脏占用io资源,临时表,排序,慢sql,应用瓶颈,锁等待)

资源未被正确配置

资源已经损坏或者失灵

4、schema与数据类型优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值