免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1301 | 回复: 0
打印 上一主题 下一主题

转自fishhust的分析binlog,找出热表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 01:08 |只看该作者 |倒序浏览
分析binlog,找出热表
2011年04月26日 11:55

分析binlog,找出热表:
(1)binlog中记录的都是dml语句,主要包括update insert 和delete,先过滤出来:
mysqlbinlog mysql-bin.005751 |grep -i -E "^(update|insert|delete)" > 1.dml.sql
(2)找出最近的10w条sql来分析:
tail -n 100000 1.dml.sql > 2.tail_dml.sql
(3)把所有的数字替换成D, 这样可以统计分表上面的sql:
sed -i -r 's/[0-9]{1,}/D/g' 2.tail_dml.sql
(4)排序,找出执行次数最多的sql语句,按照降序排列,取top 50的sql来分析:
sort 2.tail_dml.sql |uniq -c |sort -n -r |head -n 50 > 3.sorted_top_50.sql

 

如果是dml语句导致的io问题,就可以考虑优化top 50的热门sql语句涉及到的表结构,来降低服务器负载.

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP