网站打开慢之学习mysql慢查询和linux top命令

今天在公司,休息的时候打开自家网站看了看,逛到一个商品列表页的时候,感觉很慢,遂觉得哪里出了问题。


这时,我不知道什么情况,不过有种感觉,觉得应该是sql问题,这可能就是经验问题,于是ssh 到服务器。



top 命令



一看吓一跳  mysql  CPU% 高达   300%  这尼玛坑定就是sql语句问题。



于是,想找sql语句问题 , 不过又不想去代码里找,肿么办呢?


想起了曾经看的mysql慢查询的文章,觉得这是个好方法。



在mysql配置文件my.cnf中增加


log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)


long_query_time=2 (记录超过的时间,默认为10s)


log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)


log-long-format (如果设置了,所有没有使用索引的查询也将被记录)


当然上面是要重启mysql才能生效,这尼玛 , 线上正在跑  肿么能随便重启mysql呢,再一想 , 这问题 我都能想到,肯定有人早就想到,于是又找资料去临时查看慢查询

首先通过客户端连接到Mysql服务器,然后输入下面的语句:

set global log_slow_queries = om;

set global long_query_time = 3;


这样MySQL就会把耗时>=3秒的SQL语句给记录下来,并输出到一个慢查询日志文件中。问题来了,这个慢查询日志文件在什么地方呢?如下,在MYSQL客户端中执行下面的语句:


show variables like 'slow_query_log_file';


就会看到MySQL慢查询日志文件位置。



哇咔咔,顺利找出调皮的sql语句,或说写子查询的时候要加条数限制的啊  尼玛  桑不起啊








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值