Mysql 慢查询和慢查询日志分析

释放双眼,带上耳机,听听看~!

众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的。下面总结一些使用过或者研究过的经验,从配置以及调节索引的方面入手,对mysql进行一些优化。
第一步应该做的就是排查问题,找出瓶颈,所以,先从日志入手
开启慢查询日志
mysql>show variables like “%slow%”; 查看慢查询配置,没有则在my.cnf中添加,如下


1
2
3
4
1log-slow-queries = /data/mysqldata/slowquery.log    #日志目录
2long_query_time = 1                          #记录下查询时间查过1秒
3log-queries-not-using-indexes     #表示记录下没有使用索引的查询
4

分析日志 – mysqldumpslow
分析日志,可用mysql提供的mysqldumpslow,使用很简单,参数可–help查看


1
2
3
4
5
6
7
1# -s:排序方式。c , t , l , r 表示记录次数、时间、查询时间的多少、返回的记录数排序;
2#                             ac , at , al , ar 表示相应的倒叙;
3# -t:返回前面多少条的数据;
4# -g:包含什么,大小写不敏感的;
5mysqldumpslow -s r -t 10  /slowquery.log     #slow记录最多的10个语句
6mysqldumpslow -s t -t 10 -g "left join"  /slowquery.log     #按照时间排序前10中含有"left join"的
7

推荐用分析日志工具 – mysqlsla


1
2
3
4
5
6
7
8
9
10
1wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
2tar zvxf mysqlsla-2.03.tar.gz
3cd mysqlsla-2.03
4perl Makefile.PL
5make
6make install
7mysqlsla /data/mysqldata/slow.log
8# mysqlsla会自动判断日志类型,为了方便可以建立一个配置文件“~/.mysqlsla”
9# 在文件里写上:top=100,这样会打印出前100条结果。
10

给TA打赏
共{{data.count}}人
人已打赏
安全经验

如何避免Adsense违规封号

2021-10-11 16:36:11

安全经验

安全咨询服务

2022-1-12 14:11:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索