mysql 播入和更新死锁_Mysql中插入的死锁

我正在使用

mysql 5.0.92.最近,我们对一个表有很多插入死锁,相对快速地插入(并更新或删除)行.我在StackOverflow,mysql文档和论坛中研究了这些问题,但没有理解这个问题.令我困惑的一件事是,其中一个表没有根据innodb状态锁定任何资源.

以下是SHOW INNODB STATUS的输出:

*** (1) TRANSACTION:

TRANSACTION 0 2326105503, ACTIVE 0 sec, process no 18871, OS thread id 1078532416 inserting

mysql tables in use 1, locked 1

LOCK WAIT 3 lock struct(s), heap size 1216, undo log entries 1

MySQL thread id 225129, query id 126720476 192.168.999.999 the-user update

insert into the_table (creation_date, expiration_date, iid, ma_c, ma_cid, ma_ed, ma_lat, ma_long, ma_ln, ma_sd, ma_sid, uid, id) values ('2011-08-30 16:54:18.0', '2011-09-01 23:59:59.0', 1001, '', 'US', '2011-09-01 23:59:59.0', 33.72, -92.61, 'CITY_CENTER', '2011-08-31 23:59:59.0', '', 1010, 'xxx')

*** (1) WAITING FOR THIS LOCK TO BE GRANTED:

RECORD LOCKS space id 15002 page no 5749 n bits 376 index `idx_iu` of table `the_db/the_table` trx id 0 2326105503 lock_mode X insert intention waiting

Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0

0: len 8; hex 73757072656d756d; asc supremum;;

*** (2) TRANSACTION:

TRANSACTION 0 2326105502, ACTIVE 0 sec, process no 18871, OS thread id 1243085120 inserting, thread declared inside InnoDB 500

mysql tables in use 1, locked 1

4 lock struct(s), heap size 1216, undo log entries 2

MySQL thread id 223875, query id 126720499 192.168.999.999 the-user update

insert into the_table (creation_date, expiration_date, iid, ma_c, ma_cid,ma_ed, ma_lat, ma_long, ma_ln,ma_sd, ma_sid, uid, id) values ('2011-08-30 16:54:18.0','2011-12-14 23:59:59.0', 2002, 'Amsterdam', 'NL', '2011-10-04 16:45:00.0', 52.37, 4.89, 'CITY_CENTER', '2011-09-06 23:59:59.0', '', 2020, 'yyy')

*** (2) HOLDS THE LOCK(S):

RECORD LOCKS space id 15002 page no 5749 n bits 376 index `idx_iu` of table `the_db/the_table` trx id 0 2326105502 lock_mode X

Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0

0: len 8; hex 73757072656d756d; asc supremum;;

Record lock, heap no 283 PHYSICAL RECORD: n_fields 3; compact format; info bits 32

0: len 8; hex 80000000008b22f0; asc " ;; 1: len 4; hex 8004ab2a; asc *;; 2: len 30; hex 313331343732333235383338393330353936323430363039352020202020; asc 1314723258389305962406095 ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:

RECORD LOCKS space id 15002 page no 5749 n bits 376 index `idx_iu` of table `the_db/the_table` trx id 0 2326105502 lock_mode X insert intention waiting

Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0

0: len 8; hex 73757072656d756d; asc supremum;;

*** WE ROLL BACK TRANSACTION (1)

该表定义如下:

CREATE TABLE `the_table` (

`id` char(30) NOT NULL default '',

`iid` bigint(20) NOT NULL,

`uid` int(11) NOT NULL,

`creation_date` datetime default NULL,

`expiration_date` datetime default NULL,

`ma_sd` datetime default NULL,

`ma_ed` datetime default NULL,

`ma_c` varchar(255) default NULL,

`ma_sid` varchar(3) default NULL,

`ma_cid` varchar(3) default NULL,

`ma_long` double default NULL,

`ma_lat` double default NULL,

`ma_ln` varchar(50) default NULL,

PRIMARY KEY (`id`),

KEY `idx_iu` (`iid`,`uid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

将非常感谢帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值