当前位置:   article > 正文

mysql慢日志优化_MySQL的慢日志线上问题及优化方案

log_slow_replica_statements

MySQL 慢日志(slow log)是 MySQL DBA 及其他开发、运维人员需经常关注的一类信息。使用慢日志可找出执行时间较长或未走索引等 SQL 语句,为进行系统调优提供依据。

本文将结合一个线上案例,分析如何正确设置 MySQL 慢日志参数和使用慢日志功能,并介绍下网易云 RDS 对 MySQL 慢日志功能的增强。

MySQL 参数组功能

网易云 RDS 实例提供了参数组管理功能,可通过参数管理界面查看绝大部分常用的 MySQL 系统参数,用户可了解当前运行值和建议值:

0e112d36e755b3dd8528332f27f653ac.png

用户还可通过参数管理页面对所列的参数进行修改,点击 “修改参数” 按钮进行在线设置,点击 “保存修改” 即可一键完成 MySQL 主从节点的参数修改:

3e1a7c50e7e5989f7a23677aa716e1f6.png

查看参数管理界面不难发现,与慢查询相关的参数比较多,那么,这些参数都是如何起作用的呢,相互关系又是如何,满足什么条件的 SQL 语句才会记录到慢日志中?只有了解这些才能更好地利用慢日志进行系统调优和问题定位。

下面,我们以这个线上案例为依托,介绍下该如何正确配置慢日志参数:

有用户报告,他们使用的多个 RDS 5.7 版本实例慢日志异常,明明执行了一分多钟的 SQL 语句,却没有记录到慢日志中。还提供了用于复现的 SQL 语句。

慢日志参数正确配置姿势

首先,我们需要确认该实例是否开启了慢日志功能,默认情况下,MySQL 慢日志功能是关闭的。慢日志开关参数为 slow_query_log,可在 mysqld 启动命令行或配置文件中显式指定,若指定 slow_query_log=1 或不指定值,则表示开启慢日志,赋值为 0 表示关闭。用户可以在运行时动态开启和关闭。

网易云 RDS 实例默认开启慢日志功能,我们确认了该用户未关闭实例的慢日志开关。

接下来,需确认慢日志记录位置,MySQL 使用 log_output 参数指定以文件(FILE)还是以表 (TABLE) 的方式来保存慢日志。需要强调的是,仅指定 log_output 而将 slow_query_log 置为 0 并不会记录慢日志,也就是说 slow_query_log 才是慢日志的开关。若使用文件形式记录慢日

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/455419
推荐阅读
相关标签
  

闽ICP备14008679号