Mysql:mysqldumpslow 技巧:如何不截断 slow.log 文件,直接指定开始starttime时间,进行分析?

slow日志文件很大很大,包含很多的时间段,如何指定开市时间进行分析呢?

mysqldumpslow的选择中,没有开始、结束时间的选项。

绝大部分场景下,结束时间不是很重要,而开始时间就很有必要指定了。怎么办?

截断slow日志文件最常规做法,不过很麻烦不是。

以下是个技巧:

 

 最最最佳做法:使用sed 模式范围

sed -n '/Time: 2022-12-20/,$ p' /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
sed -n '/Time: 2022-12-20/,$ p' /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
sed -n '/Time: 2022-12-20/,$ p' /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more

 

另一种写法,直接使用grep的高级功能,更简洁

grep -A 999999999 "Time: 2022-12-20" /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more

 

tail -n +N 方式,也比较麻烦,不推荐

tail -n +4858883 /data/mysql/slow.log | mysqldumpslow -s at -n 10  - | more
tail -n +$(grep -n "Time: 2022-12-20" /data/mysql/slow.log | head -1 | cut -d : -f 1 ) /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more



posted on 2022-12-29 12:39  jinzhenshui  阅读(237)  评论(0)    收藏  举报