mysql各种锁
根据级别分为:全局锁,表级锁,页级锁,间隙锁,临键锁,行级锁
根据锁共享策略分为:共享锁,排他锁,意向共享锁,意向排他锁
根据加锁策略分为:乐观锁,悲观锁
其他锁相关:自增锁,mdl...锁
全局锁
全局锁可以将整个数据库实例加锁:
锁住整个数据库,只允许读取数据
方法一:
mysql> flush tables with read lock; //加锁
Query OK, 0 rows... affected (0.05 sec)
mysql> unlock tables; //释放锁
Query OK, 0 rows affected (0.00 sec)
此方法发生客户端断开后会自动释放锁...方式二:
mysql> set global read_only=on;//加锁
Query OK, 0 rows affected (0.00 sec)
mysql> set global read_only...什么是幻读
假设数据库数据为:
id主键 b 索引 c
1 2 3
5 6 8
10 9 13
当启用事务时:
事务1 事务2 事务3
Q1: begin;查询 b=6的数据,for update