开发者社区 问答 正文

如何自建 MySQL 数据库全量SQL诊断

MySQL的用户都面临都一个难题,异常或者故障问题难定位,很多时候都靠“猜”。
如果比较幸运,异常正在发生,我们还可以获取到会话、引擎状态等信息;
如果没有异常现场,要找到根因,除了慢日志、错误日志、性能监控外,可能就没有更多的可用信息帮助用户定位问题。
MySQL 从5.5版本开始,就出现了performance_schema,经过5.6版本和5.7版本的改进和增强,performance_schema提供了丰富的性能和诊断相关的信息。
DMS基于performance_schema,提供用户TOP SQL和全量SQL诊断功能,用户可以通过该功能快速的定位到异常SQL。
借助TOP SQL和全量SQL诊断功能,用户同时可以在以下三个方便获得收益:


SQL列表


SQL列表展示了选定时间范围内每一类SQL的SQL文本、耗时比例、平均耗时、平均扫描行数、首次出现时间、最后出现时间等信息。
耗时比例=(该类SQL执行耗时 执行次数)/(所有SQL执行耗时 总执行次数) * 100%
所以耗时比例越高的SQL,基本上可以理解为占用MySQL资源越多的SQL,优化该SQL,可以获取的更高的收益比,以下图的场景为例:

前提条件


用户获取权限并已登录DMS控制台。


  1. 登录帐号需要performance_schema库的查询权限;

  2. 需要开启performance_schema;show variables like 'performance_schema';
  3. performance_schema=on


如果处于off状态,需要在你的my.cnf文件中增加如下配置,然后重启生效; [mysqld]
performance_schema=ON


开启statment_digest update setup_consumers set ENABLED='YES' where name='statment_digest';

开启events_statements_history update setup_consumers set ENABLED='YES' where name='events_statements_history';
建议开启events_statements_history_long update setup_consumers set ENABLED='YES' where name='events_statements_history';


背景信息


目前暂时仅支持自建数据库 MySQL 5.6.24以上版本。
开启performance_schema约有10%左右的性能消耗;
DMS读取performance_schema的数据可能会产生公网流量;

操作步骤


登录DMS控制台——>选择MySQL数据库——>选择“性能”菜单——>点击“全量SQL诊断”
详细操作步骤如下:
  1. 登录DMS控制台后,界面如下图所示:


  1. 选择MySQL数据库,并单击登录数据库按钮进行登录。

  2. 如下图所示,在顶部导航栏菜单中,选择性能>全量SQL诊断;

展开
收起
云栖大讲堂 2017-11-02 14:30:17 1845 分享 版权
阿里云 AI 助理回答

通过DMS(Data Management Services)的全量SQL诊断功能,用户在面对MySQL数据库性能问题和故障定位时,可以更加系统化和精细化地进行分析。以下是用户能够从TOP SQL和全量SQL诊断功能中获得的具体收益点:

  1. 快速定位性能瓶颈:TOP SQL列表直接展示了在选定时间范围内的高耗时SQL语句,按照耗时比例排序。这使得DBA或开发者能够迅速识别出哪些SQL查询是导致数据库资源紧张的主要原因,从而优先对这些SQL进行优化。

  2. 深入理解执行详情:除了耗时比例外,还提供了平均耗时、平均扫描行数等关键指标,帮助用户了解SQL执行的效率和对数据表的影响程度。首次出现时间和最后出现时间则有助于追踪问题发生的时间线,对于间歇性问题的排查尤为重要。

  3. 优化决策支持:基于SQL列表中的信息,用户可以评估不同SQL优化的潜在收益,优先处理那些能带来最大性能提升的查询。例如,减少高耗时SQL的执行次数,或者优化其执行计划以降低资源消耗。

  4. 历史趋势分析:开启events_statements_history_long后,可以收集更长时间范围内的SQL执行记录,这对于分析长期性能趋势、识别周期性问题非常有帮助。

  5. 无侵入式监控:使用performance_schema进行监控不会直接影响到线上业务运行,相比传统日志分析,它提供了一种更为实时且详尽的监控方式,减少了对生产环境的干扰。

  6. 简化故障排查流程:通过DMS控制台直观的操作界面,用户无需手动编写复杂的SQL查询来分析performance_schema的数据,大大降低了故障排查的技术门槛,提高了运维效率。

  7. 网络流量考量:虽然提到DMS读取performance_schema数据可能产生公网流量,但作为云服务的一部分,用户应关注并合理配置VPC(虚拟私有云)规则,确保数据传输在安全的内部网络环境中进行,避免不必要的公网费用和安全性风险。

综上所述,借助DMS提供的TOP SQL和全量SQL诊断功能,用户不仅能够有效解决MySQL异常或故障难定位的问题,还能通过持续监控和优化,不断提升数据库的整体性能和稳定性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答