总结:
Mysql 的表级锁有两种模式:表共享读锁(Table Read Lock)、表独占写锁(Table Write Lock)
语法:lock table 表名 READ(读锁) lock table 表名 WRITE(写锁)
MyISAM(读锁):
1、不会堵塞其他用户对一个表的读请求,但会阻塞对同一个表的写请求。
2、不会阻塞当前session对一表的读请求,对表进行修改的时候会报错。
3、当一个sessionA使用lock table命令给表A加了读锁,这个session可以查询锁定的表A 的记录,当时对其他表进行读操作或者更新操作的时候,都会报错。
4、另一个session对sessionA中锁定的表可以进行读操作,写操作则会出现锁等待。等待sessionA释放锁的时候,才可写操作执行成功。
MyISAM(写锁):
1、sessionA对表A添加写锁,sessionA中可以对表A 进行CRUD操作,当另一个sessionB中对表A进行CRUD操作就会出现锁阻塞。如果sessionA释放了锁链接,sessionB等待中的CRUD操作会执行完毕。sessionB中对其他表的CRUD操作不受影响
2、sessionA对表A添加写锁,sessionA中如果对其他表进行CRUD操作会报错。