6. 锁的类型 - 图1

  1. mysql> show create table rlock\G
  2. *************************** 1. row ***************************
  3. Table: rlock
  4. Create Table: CREATE TABLE `rlock` (
  5. `a` int(10) unsigned NOT NULL AUTO_INCREMENT,
  6. PRIMARY KEY (`a`)
  7. ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
  8. 1 row in set (0.00 sec)

TestCase1 共享锁的情况下,影响其他事务的修改操作

共享锁的情况下,允许其他线程进行读取操作,但修改操作会挂起

6. 锁的类型 - 图2

TestCase2 一个事务获取共享锁的时候,其他事务获取X锁会挂起

6. 锁的类型 - 图3

TestCase3 S锁兼容S锁

执行查询没问题,删除的操作同TestCase1

6. 锁的类型 - 图4
6. 锁的类型 - 图5

TestCase4 X锁,会影响其他事务的更新操作

查询操作不会阻塞,同S锁

6. 锁的类型 - 图6

TestCase5 update语句隐式的X锁

不影响其他事务的读取,但影响修改

6. 锁的类型 - 图7