Archive for 五月, 2007

[转]MySQL SQL Profiler性能分析器

申请了MySQL版主,说要15天的考察期
看来要好好表现了。不能再潜水了。

看到很多朋友问MySQL的性能分析器
因为MySQL在这方面做得比较差,也可能我不知道
没有Microsoft的SQL Profiler,也没有Oracle的Audit和AWR
所以我们很难得到一些SQL语句的统计,这也给我们调优带来了困难
更难的是对MySQL的追踪
以前写过个,不过在看过mysql网站上的一个bash脚本后,觉得自己的那个就是小巫见大巫了
现拿来分享给大家,很简单
# 取得网卡eth0上的所有操作

  1. time tcpdump -i rl0 -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 
# 这个是格式化输出你要结果

  1. 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,你可以进一步的优化

评论 (1)

apache event

昨天跟朋友闲聊,了解到Apache2.2现在MPM里有一个叫Event的东东。

看了一下官方的介绍,比Worker方式还要先进一些。推荐在FreeBSD5.3以上使用。刚好系统是Upgrade到6.2了。

把Apache跟PHP都重新编译了一次。使用的效果不错。呵呵。。

评论

备忘

以前一直没有用过VC。这段时间跟着同事用VC做项目。说真的,学了不少东西。呵呵。。

起码搞清楚了系统托盘跟ADO连接MSsql以及连接用C api连接Mysql。呵呵。。

以前只会一些基本的C语句,现在也强不了多少。呵呵。。现在只会修改他们写的代码。自己还是写不出东西。

等这个项目结束之后,我好好地学些VC相关的。搞些简单的软件先。现在搞WEB已经没有什么好的突破点子了。

试一下用C/S加B/S的模式写些东西看。

评论

使用mb_substr 需要注意的地方

1.php的版本必须>=4.0.6

2.php_mbstring的模块必须被装载->extension=php_mbstring.dll
liunx用户在编译php的时候加入-enable-mbstring参数就可以了

3.如果需要操作的字符是中文的话必须设置编码参数
mb_internal_encoding(“GB2312″) 或者
mb_substr($string,5,1,”GB2312″)

评论