MySQL慢日志优化

本文介绍了MySQL慢日志导致的性能问题,包括I/O和CPU资源消耗、锁等待消耗和锁申请消耗。文章提供了收集和分析慢日志的方法,如使用ELK和Percona工具,并详细阐述了SQL优化的基础,如EXPLAIN分析。优化思路包括添加索引、避免多表联查的性能陷阱,以及通过拆分冷热数据和读写分离来减少慢日志影响。最后,建议建立SQL整体优化机制,包括DB-应用负责人制度和慢日志追踪。
摘要由CSDN通过智能技术生成

慢日志的性能问题

  1. 造成 I/O 和 CPU 资源消耗:慢日志通常会扫描大量非目的的数据,自然就会造成 I/O 和 CPU 的资源消耗,影响到其他业务的正常使用,有可能因为单个慢 SQL 就能拖慢整个数据库的性能,而且这种慢 SQL,在实际业务场景下,通常都是程序发起数个 SQL 请求,通过 SHOW PROCESSLIST 命令可以捕捉到同时有 N 个类似的 SQL 请求在执行。
  2. 锁等待消耗:由于慢 SQL(select 查询)会阻塞 MDL 锁的获取,所以针对 XtraBackup 全量备份和针对表的 DDL 操作都有可能被阻塞,一旦 DDL 被阻塞,针对表的请求就会变成串行阻塞,后续业务也就无法执行。
  3. 锁申请消耗:对于非 select 查询的慢事务, SQL 还会把持锁不释放,让后续事务无法申请到锁,造成等待失败,对业务本身来讲是不可以接受的。

怎么收集慢日志?

    ELK 体系分析慢日志 

  • MySQL 开启慢日志——>文件记录慢日志
  • ELK 环境搭建
  • MySQL 服务器安装 Filebeat 并进行 mysql-slow.log 过滤处理配置
  • ELK-WEB 进行维度查看

 Percona 分析慢日志

  Percona 的 pt-query-digest 是一款可以针对 MySQL 慢日志进行定制化分析的工具

  • MySQL 开启慢日志——>文件记录慢日志
  • Percona 组件安装并编写 pt-query-digest 定时脚本
  • 远程数据库进行定期删除保留<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值