mysql slow.log 太大_使用MySQL Slow Log来解决MySQL CPU占用高的问题

使用MySQL Slow Log来解决MySQL CPU占用高的问题

发布时间:2018-04-15 09:55:30

但是怎么找到是哪个SQL语句的执行时间过长呢?可以通过MySQL Slow Log来找,详解如下。

首先找到MySQL的配置文件my.cnf,根据不同版本的mysql开启慢查询的配置也不一样

mysql 5.0

[mysqld]

long_query_time = 1

log-slow-queries = /var/log/mysql/slow.log

mysql 5.1

[mysqld]

long_query_time = 1

slow_query_log=1

slow_query_log_file = /var/log/mysql/slow.log

long_query_time 是指执行超过多久的sql会被log下来,这里是1秒。

log-slow-queries和slow_query_log_file 设置把日志写在哪里

把上述参数打开,运行一段时间,就可以关掉了,省得影响生产环境

接下来就是分析了,我这里的文件名字叫 /var/log/mysql/slow.log。

先mysqldumpslow –help下,主要用的是

-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at' is default

-t NUM just show the top n queries

-g PATTERN grep: only consider stmts that include this string

-s,是order的顺序,说明写的不够详细,主要有

c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒序

-t,是top n的意思,即为返回前面多少条的数据

-g,后边可以写一个正则匹配模式,大小写不敏感的

mysqldumpslow -s c -t 20 /var/log/mysql/slow.log

mysqldumpslow -s r -t 20 /var/log/mysql/slow.log

上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

mysqldumpslow -t 10 -s t -g “left join” /var/log/mysql/slow.log

这个是按照时间返回前10条里面含有左连接的sql语句。

用了这个工具就可以查询出来那些sql语句是性能的瓶颈,进行优化,比如加索引,该应用的实现方式等。

相关文章

120726 11:57:22 [Warning] user entry root@localhost localdomain ignored in --skip-name-resolv 2018-04-15

基本概念 & 8226; 字符(Character)是指人类语言中最小的表义符号。例如 A 、 B 等; & 8226; 给定一系列字符 2018-04-15

简要说明 字符集和校对规则 字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。 MySql在 2018-04-15

需要开启一个慢查询输出的一个机关:log_slow_queries。可以在MySQL配置文件中(my ini my cnf)中设置,也可以通 2018-04-15

今天在使用ORDER BY的过程中出现了一点问题,发现之前对ORDER BY理解是错误的。 之前在w3s网站上看到ORDER B 2018-04-15

线上有个数据库,在slow log中,存在大量类似下面的记录: 复制代码 代码如下: Time: 130823 13:56:08 2018-04-15

1, see the slow log status;

mysql> show variables like %slow% ;+---------------------+--------- 2018-04-15

mysql 日志系统上线有段时间了,前端在慢慢切站点过来写入,未雨绸缪 diy了套 mysql 监控工具

分为 slave s 2018-04-15

mysqldumpslow是mysql自带的用来分析慢查询的工具

经常使用几个命令

-s ORDER what to sort by (al, at, 2018-04-15

一个普通WEB站点的页面常常需要查询N条SQL语句后才能得出页面结果,当网站访问速度慢而前端做了大量优化工作以后 2018-04-15

1、查看是否启用了日志:show variables like log_bin ;

2、查看当前日志文件名:show master status;

3、 2018-04-15

如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了。大概思路:在 一台db跳转 2018-04-15

线上有个数据库,在slow log中,存在大量类似下面的记录: 复制代码 代码如下: Time: 130823 13:56:08 2018-04-15

创建存储过程时

出错信息:复制代码 代码如下:ERROR 1418 (HY000): This function has none of DETERMI 2018-04-15

mysql binlog3种格式,row,mixed,statement 解析工作

mysqlbinlog --base64-output=DECODE-ROWS -v mysq 2018-04-15

下面是MYSQL占用CPU高处理的一个例子,希望对遇到类似问题的朋友们有点启发。一般来说MYQL占用CPU高,多半是数据 2018-04-15

Mysql占用CPU过高的时候,该从哪些方面下手进行优化?

占用CPU过高,可以做如下考虑:

1)一般来讲,排除高并发 2018-04-15

更改后如下:

innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀

query_c 2018-04-15

朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysqld-nt exe) CPU 占用率总 2018-04-15

发现此主机运行了几个 Discuz 的论坛程序, Discuz论坛的好几个表也存在着这个问题。于是顺手一并解决,cpu占 2018-04-15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值