mysql 满查询管理平台,MySQL 慢查询的排查方法

在用户使用数据库过程中,可能会出现非业务流量高峰导致的内存及CPU使用率激增的想象,这可能是由于某些SQL语句执行时间过长导致的。通过对慢查询日志的排查可以了解数据库系统运行异常,优化SQL语句,提升数据库性能。

什么是慢查询日志

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为1,意思是运行1s以上的语句。

慢查询性能低下的基本原因往往是访问的数据过多;它们执行过程中占用系统资源不释放,甚至由于并发较高、彼此争用资源,使得执行时间较业务低峰期更长,这使得cpu、网络和IO等都承受很大的压力,短时间内导致所有查询执行效率降低,严重的还会导致mysql的crash

如何开启慢查询日志

重要参数如下:

slow_query_log 慢查询开启状态

slow_query_log_file 慢查询日志存放路径

long_query_time 查询超过多少秒才记录

建议配置如下: [mysqld] slow_query_log = ON slow_query_log_file = /home/mysql/mysql/log/slow.log long_query_time = 1

下面为慢查询日志的一个片段:

第一行显示了查询记录的时间,第二行显示执行查询的用户; 第三行显示了执行查询需要的时间、在MySQL服务器等待表锁的时间、查询返回的行数,以及查询检查的行数。而后则是所执行的查询。

辅助工具mysqldumpslow查看慢查询统计信息

Mysqldumpslow的用法:

11281109895d18ec6a44345ccb495f61.png

常用的参数的含义如下: -s : 将日志记录进行排序; t,l,r,c和at,al,ar,ac分别是按照query time,lock time,返回的记录数,query次数来排序,前面加了a的是按平均值排序。降序排列。 -a: 不将查询语句中的数字用’N’代替,不将查询语句中的字符串用’S’代替。 -g:仅分析相匹配的query。 -t: 是top n的意思,即为返回前面多少条的数据。 -r:升序排列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值