开发者社区 问答 正文

如何用DMS进行表结构对比

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 10:17:48 2513 分享 版权
阿里云 AI 助理回答

通过DMS(Data Management Services)的全量SQL诊断功能,用户在面对MySQL数据库性能问题时,可以系统性地分析和定位异常或低效SQL语句,进而优化数据库性能。以下是用户通过该功能可获得的具体收益点:

  1. 快速定位问题SQL:TOP SQL列表能够迅速展示出在选定时间范围内的高耗时SQL操作,按照耗时比例排序,帮助用户直接聚焦于那些占用最多资源的SQL查询。这使得优化工作有的放矢,优先处理那些对整体性能影响最大的问题。

  2. 详尽的SQL性能指标:除了列出SQL文本外,还提供了包括平均执行耗时、平均扫描行数、首次与最后出现时间等关键指标。这些信息对于理解SQL执行的行为模式至关重要,比如是否为偶发性慢查询,或是持续存在的性能瓶颈。

  3. 优化决策支持:基于耗时比例和其他性能指标,用户可以量化每个SQL优化后可能带来的性能提升效果,从而做出更合理的优化决策。例如,优化耗时比例最高的几个SQL往往能最有效地提升系统响应速度和资源利用率。

  4. 历史趋势分析:通过查看SQL的首次与最后出现时间,以及结合DMS可能提供的历史数据视图,用户可以分析SQL执行的趋势,判断是新引入的问题还是长期存在的性能瓶颈,为问题追溯和预防提供依据。

  5. 减少盲目猜测与人工排查:传统上依赖慢日志、错误日志等手动分析方式费时费力,而DMS的自动化诊断功能极大简化了这一过程,减少了故障排查中的“猜测”成分,提高了运维效率。

  6. 降低性能监控成本:虽然开启performance_schema会有一定的性能开销,但相比无目标的性能调优尝试,或者因性能问题导致的服务中断,这种开销是值得的。它提供了一种主动且相对低成本的方式来持续监控和优化数据库性能。

综上所述,借助DMS的全量SQL诊断功能,用户不仅能够快速定位并解决MySQL数据库的性能瓶颈,还能通过精细化的性能指标分析,实现更加科学和高效的数据库维护与优化策略。

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