MySQL SQL Profiler性能分析器

看到很多朋友问MySQL的性能分析器
因为MySQL在这方面做得比较差,也可能我不知道
没有Microsoft的SQL Profiler,也没有Oracle的Audit和AWR
所以我们很难得到一些SQL语句的统计,这也给我们调优带来了困难
更难的是对MySQL的追踪
以前写过个,不过在看过mysql网站上的一个bash脚本后,觉得自己的那个就是小巫见大巫了
现拿来分享给大家,很简单
# 取得网卡eth0上的所有操作
time tcpdump -i eth0 -s 1500 -w 20060427-db-traffic-01.dmp 
# 这个可以指定特定IP请求的操作,可用于追踪
time tcpdump -i eth0 -s 1500 src host 192.168.2.10 -w 20060427-db-traffic-01.dmp 
# 这个是格式化输出你要结果
strings 20060427-db-traffic-01.dmp | grep -i 'select' | awk '{printf("%s %s %s %s/n", $1,$2,$3, $4);}'| sort| uniq -c | awk '{printf("%06ld %s %s %s %s/n", $1,$2,$3,$4,$5);}'|sort

得到的结果:
cpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
12000 packets captured
12000 packets received by filter
0 packets dropped by kernel
real 0m8.666s
user 0m0.006s
sys 0m0.016s
--------
000001 select last_insert_id() from system_parameter
...
000122 select count(1) from visit_tracking
000122 select visitor_id
000800 select web_page_id , web_page_type_id
000800 select web_page_type_id , name
003200 select count(1) from hit_count
006400 select pd.parameter_value,
006400 select rp.user_id , rp.update_time 

可以看到执行各种select的次数,当然改一下就可以看insert,update这种操作次数
配合log-slow-queries,你可以进一步的优化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值