理解mysql锁(2)表级锁定(二)
rows affected (0.00 sec)
mysql> lock table t1 write;
Query OK, 0 rows affected (0.00 sec)
自己的session可以继续读:
mysql> select * from t1;
+------+
| i |
+------+
| 3 |
| 2 |
| 5 |
| 6 |
+------+
www.2cto.com
4 rows in set (0.00 sec)
session B:
其他session的读被阻塞了
mysql> select * from t1;
直接被阻塞鸟
session A
释放锁定资源
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
session B
其他session可以获得资源了
mysql> select * from t1;
+------+
| i |
+------+
| 3 |
| 2 |
| 5 |
| 6 |
+------+
www.2cto.com
4 rows in set (0.00 sec)
session A
通过DDL获取write_allow_read类型的写锁定
mysql> alter table t1 add constraint t1_pk primary key(i);
Query OK, 4 rows affected (0.07 sec)
Records: 4 Duplicates: 0 Warnings: 0
session B
其他session的读未被阻塞
mysql> select * from t1;
+---+
| i |
+---+
| 2 |
| 3 |
| 5 |
| 6 |
+---+
4 rows in set (0.00 sec)