mysql死锁 简单例子_数据库-mysql-死锁的发生示例

例1:-------------------------------------------------------------------------------------------------------------------------------------

T1:select * from table lock in share mode(假设查询会花很长时间,下面的例子也都这么假设)

T2:update table set column1='hello'

过程:

T1运行(并加共享锁)

T2运行

If T1还没执行完

T2等......

else 锁被释放

T2执行

end if

T2 之所以要等,是因为 T2 在执行 update 前,试图对 table 表加一个排他锁,而数据库规定同一资源上不能同时共存共享锁和排他锁。所以 T2 必须等 T1 执行完,释放了共享锁,才能加上排他锁,然后才能开始执行 update 语句。

例2:-------------------------------------------------------------------------------------------------------------------------------------

T1:select * from table lock in share mode

T2:select * from table lock in share mode

这里T2不用等待T1执行完,而是可以马上执行。

分析:

T1运行,则 table 被加锁,比如叫lockA&

你可能感兴趣的:(mysql死锁,简单例子)