免费注册 查看新帖 |

Chinaunix

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

关于mysql lock_wait的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-10 10:31 |只看该作者 |倒序浏览
遇到一个情况,一个sequence_table,调用nextval,currval函数更新,sequence_table中有多行,连续出现几次lock_wait的情况,kill sessionid后,还是会一直出现lock_wait,怀疑是有没有提交的事务存在。但是show processlist没有看到。select * from information_schema.innodb_trx也没有看到!

表结构:
CREATE TABLE `sequence_tab` (
  `name` varchar(50) NOT NULL,
  `current_value` int(11) NOT NULL,
  `increment` int(11) NOT NULL DEFAULT '1',
  `seq_total_length` int(11) DEFAULT '0',
  `Lpad_char` varchar(1) DEFAULT NULL,
  PRIMARY KEY (`name`)
) ENGINE=innodb;

表的内容:
mysql> select * from sequence_tab;
+------------------------------------+---------------+-----------+------------------+-----------+
| name                               | current_value | increment | seq_total_length | Lpad_char |
+------------------------------------+---------------+-----------+------------------+-----------+
| alarmrosterSeq                     |             1 |         1 |                8 | 0         |
| alarm_info_id                      |       2325190 |         1 |             NULL |           |
| bs_id_seq                          |          1910 |         1 |                8 | 0         |
| bw_id_seq                          |           996 |         1 |                8 | 0         |

已经排除的手段:
1,程序侧没有对transaction做控制,MYSQL设置也是auto_commit;
2,模拟将sequence_tab表和用到的几个函数setval,currval,nextval导到测试MYSQL中测试了一下。
并发30个mysql会话执行同一个存储过程,不断的获取currval,nextval的值插入到新的表test1中。总共插入了1KW行的数据。
测试中:会出现lock_wait的情况,但是出现的时间很短。


后面不知道如何诊断了,请各位大拿提供宝贵的建议,谢谢!


论坛徽章:
0
2 [报告]
发表于 2013-09-10 11:59 |只看该作者
自己顶yige !

论坛徽章:
0
3 [报告]
发表于 2013-09-12 10:21 |只看该作者
有大虾指点下吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP