暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL慢查询的定位方法

原创 宇飞 2023-06-04
469

数据库上线后,多多少少会遇到一些问题,比如常见的慢查询等。对运维人员或数据库管理员来说,处理慢查询问题也许就是日常工作的重点,也是难点。

慢查询导致的直接性能损耗就是数据库系统中最为昂贵的I/O资源。对于MySQL数据库来说,I/O出现瓶颈会导致连接数增大和锁表等问题,甚至有可能会导致业务访问失败,在高并发场合下这种问题尤其严重。开启慢查询记录功能的好处是可以通过分析慢查询来优化SQL语句,从而解决因慢查询而引起的各种问题。

开启慢查询日志功能的方法很简单,只需要在my.cnf配置文件里加入以下参数即可:

    slow_query_log=1

    slow_query_log_file=mysql.slow

    long_query_time=2 (超过2秒的SQL语句会被记录下来)

当数据库的连接数很大时就要引起注意了。可以通过cacti监控软件观察时间点,然后把该时间段的慢日志截取出来,命令如下:

    sed -n '/# Time: 时间点 /,/end/p' mysql.slow > slow.log

之后,用mysqldumpslow命令取出 耗时最长的前10条慢查询语句进行分析:

    mysqldumpslow -s t -t 10 slow.log

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论