update t_sellticket,t_tmpsellticket
set t_sellticket.used=1
where t_sellticket.pool=t_tmpsellticket.pool and t_sellticket.ticketid=t_tmpsellticket.ticketid;
死锁的情况。 这是因为sellticket非簇索引、和簇索引互相等待导致的死锁情况,于是老老实实实现第二点,问题解决。
在若干个节点同时运行情况下,售票效率可以通过增加主机实现了提高售票能力。 未来瓶颈来自存储和网络带宽 最终版本:
createt definner='root'@'loclahost' procedure 'sp_getpresellticket'(in startno int,in endno int)
begin
insert into t_tmpsellticket(pool,ticketid,maxid) select pool,tocketid,
cast(concat(cast(pool as BINARY),cast(ticketid as BINARY)) as signed)
from t_sellticket
where id>=startno and id<=endno;
select ticketid
from t_tmpsellticket
where maxid=startno;
end $$
delimiter; 有些看不明白怎么产生的死锁,两个过程都要锁定簇索引,也就是说innodb是一行行进行加锁的吗,这样才导致两边事务各自占了一部分行锁,无法完全锁定吗 not bad.
页:
1
[2]