网站打开慢之学习mysql慢查询和linux top命令
2014-03-04 22:27
627 查看
今天在公司,休息的时候打开自家网站看了看,逛到一个商品列表页的时候,感觉很慢,遂觉得哪里出了问题。
这时,我不知道什么情况,不过有种感觉,觉得应该是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语句,或说写子查询的时候要加条数限制的啊 尼玛 桑不起啊
这时,我不知道什么情况,不过有种感觉,觉得应该是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语句,或说写子查询的时候要加条数限制的啊 尼玛 桑不起啊
相关文章推荐
- linux学习第二十七篇:使用w查看系统负载,vmstat,top,sar,nload命令
- Linux 系统学习 之 top命令
- top命令---Linux学习笔记
- linux命令学习笔记(44):top命令
- Linux学习历程——Centos 7 top命令
- Linux 命令 top 学习总结
- Linux命令学习手册-top命令
- 一个学习Linux 编程命令的好网站
- 转载自马哥视频学习笔记---Linux Web服务器网站故障分析常用的命令之awk用法的简单示例
- Linux命令学习手册-top命令
- linux命令学习网站---http://man.linuxde.net/ssh-copy-id
- 马哥linux学习笔记:top命令的使用
- 【linux命令学习】之top/ps
- Linux top free命令学习笔记
- linux之netstat&top命令学习
- Linux学习26_每天一个linux命令(44):top命令
- linux 命令学习网站
- Linux学习笔记5--Top命令
- 学习Linux常用命令网站链接整理[持续]
- 每日linux命令学习之top