MySQL 两个死锁样例

【引子】

  从事MySQL-DBA这一样也有些年头了,想对新人说,在分析死锁问题时应该还要考虑到有一个叫请求队列的“概念”。之所以

  在这里提这个不是因为新手不知道,而是有时候会自然而然的想不到。

 

  不信的话,我下面要说的这个例子每个dba都知道要排队

  session A

creat table t(x int primary key);insert into t(x) values(1);start transaction;update t set x=2 where x=1; 

  session B

update t set x=3 where x=1;

  由于session A持有着x=1那一行的“X”锁,所以当session B要去更新x=1这一行时它就只能是等待了,此时如果有session C它也要去更新

  x=1的行,那么session C的获取锁的请求就要排在session B的后面。

 

未完 ... ...

 

 

 

----

相关文章