11.3章关于Innodb行锁定的一个公平性疑问

23 views
Skip to first unread message

任文越

unread,
Oct 12, 2009, 4:24:14 AM10/12/09
to 《构建高性能Web站点》读者讨论组
在11.3章 锁定与等待中
有个小标题是<行锁定真的很好吗>
里面举的例子是Innodb行锁定和myisam表锁定的性能对比
这个对比貌似不公平
因为进行测试的表里面的id是auto_increment
而MySQL5.0(及低版本)中如果innodb使用了auto_increment属性的字段的话
innodb实际上还是表级锁,而不再是行级锁
到了MySQL5.1才开始支持innodb_autoinc_lock_mode
http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html

myisam在单纯的crud情况下比innodb性能要好一点
本书貌似没有声明MySQL的版本
我默认认为是mysql 5.0
那么这个测试是不是应该用学习hibernate的风格,
用uuid来替代auto_increment的id再进行测试呢?

colin

unread,
Oct 12, 2009, 9:28:55 AM10/12/09
to 《构建高性能Web站点》读者讨论组
感谢您提出的问题,书中的MySQL是5.0.37,你提到的测试方案书中确实没有给出,不过11.3这一小节从本质上分析了不同类型查询在
innodb和myisam的性能区别,应该接近非auto_increment的表,有机会我会测试后给出数据。


On Oct 12, 4:24 pm, 任文越 <suchasp...@gmail.com> wrote:
> 在11.3章 锁定与等待中
> 有个小标题是<行锁定真的很好吗>
> 里面举的例子是Innodb行锁定和myisam表锁定的性能对比
> 这个对比貌似不公平
> 因为进行测试的表里面的id是auto_increment
> 而MySQL5.0(及低版本)中如果innodb使用了auto_increment属性的字段的话
> innodb实际上还是表级锁,而不再是行级锁

> 到了MySQL5.1才开始支持innodb_autoinc_lock_modehttp://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling...

Reply all
Reply to author
Forward
0 new messages