mysql表手工显式加锁、全表加锁、查看加锁、解锁

单个表锁定

格式: LOCK TABLES tbl_name {READ | WRITE},[ tbl_name {READ | WRITE},……] 

例子: lock tables db_a.tbl_aaa read;   // 锁定了db_a库中的tbl_aaa表

解锁: unlock tables; 

全局表锁定

命令: FLUSH TABLES WITH READ LOCK;   // 所有库所有表都被锁定只读

解锁: unlock tables; 

注意:以上两个锁表语句在执行的时候都需要注意个特点,就是隐式提交的语句,在退出mysql终端的时候都会隐式的执行unlock tables,也就是如果要让表锁定生效就必须一直保持对话。

查看表锁定

命令: show open tables in_use > 0; 

mysql表手工显式加锁、全表加锁、查看加锁、解锁

mysql> show open tables where in_use > 0;
+-----------+---------+--------+-------------+
| Database  | Table   | In_use | Name_locked |
+-----------+---------+--------+-------------+
|   db_a    | tbl_aaa |      1 |           0 |
+-----------+---------+--------+-------------+
1 row in set (0.00 sec)

mysql表手工显式加锁、全表加锁、查看加锁、解锁

上一篇:自己如何实现自旋锁,互斥锁和读写锁


下一篇:JUC并发编程-JMM