MySQL源码学习——MDL字典锁(3)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:17 点击:次
可以看到MySQL在ALTER TABLE的时候还是允许其他事务进行读表操作的。需要注意的是读操作的事物需要在ALTER TABLE获取MDL_SHARED_NO_WRITE锁之后,否则无法并发。这种应用场景应该是对一个较大的表进行ALTER时,其他事物仍然可以读,并发性得到了提高。
-
锁的兼容性
锁的兼容性就是我们经常看到的那些兼容性矩阵,X和S必然互斥,S和S兼容。MySQL根据锁的类型我们也可以知道其兼容矩阵如下:
IX | S | SH | SR | SW | SNW | SNRW | X | |
IX | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
S | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
SH | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
SR | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
SW | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
SNW | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
SNRW | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
X | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>