本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:918397
建立时间:2007年5月10日




[MYSQL]Mysql InnoDB表锁问题
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/3/22 23:25:11

在讨论问题之前,先看下面的mysql信息 Mysql代码 500)this.width=500'> mysql> show status like "%table_lock%";          +-----------------------+---------+    | Variable_name         | Value   |    +-----------------------+---------+    | Table_locks_immediate | 1290950 |     | Table_locks_waited    | 1069    |     +-----------------------+---------+    2 rows in set (0.01 sec)  mysql> show status like "%table_lock%"; +-----------------------+---------+ | Variable_name | Value | +-----------------------+---------+ | Table_locks_immediate | 1290950 | | Table_locks_waited | 1069 | +-----------------------+---------+ 2 rows in set (0.01 sec)     mysql版本5.0.77, 使用的存储引擎是innodb,而该引擎最主要的特点是transactional和row lock。按理说不会出现表锁才对,但是事实是出现了,并且锁的争用很严重。     查看mysql文档会发现,虽然innodb使用的的row lock,但是在处理具有auto increment字段的表的时候,会使用一种特殊的表锁——AUTO-INC。简单来说就是innodb会在内存里保存一个计数器用来记录auto_increment的值,当插入数据时,就会用一个表锁来锁住这个计数器,直到插入结束。一条一条插入问题不大,但是如果高并发插入,就会造成sql阻塞。     目前已知的解决方法有两种: 不用auto increment字段,自己维护主键生成。该方法中选择主键生成策略很重要, 要综合考虑简单和效率问题。假设使用uuid,虽然简单但是会造成该表的主键效率很低(innodb的主键是特殊的index,其他的index会引用主键,详见mysql文档)。 升级到最新的5.1版本。mysql在5.1.22版本以后提供了不同方式的auto-inc配置 Mysql代码 500)this.width=500'> innodb_autoinc_lock_mode = 0  (“traditional” lock mode)        innodb_autoinc_lock_mode = 1  (“consecutive” lock mode)        innodb_autoinc_lock_mode = 2  (“interleaved” lock mode)  innodb_autoinc_lock_mode = 0 (“traditional” lock mode) innodb_autoinc_lock_mode = 1 (“consecutive” lock mode) innodb_autoinc_lock_mode = 2 (“interleaved” lock mode)     可以参考文档http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html   PS:使用复制功能时请详细阅读文档  


阅读全文(2896) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.220 second(s), page refreshed 144758724 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号