数据库往往是多个用户在连接使用的,那么**如何保证数据并发访问的一致性、有效性呢?**首先我们看一下MySQL的锁机制。
根据加锁的范围,MySQL中的锁可分为三类:
- 全局锁;
- 表级锁;
- 行锁;
1. 全局锁
MySQL全局锁会关闭所有打开的表,并使用全局读锁锁定所有表,其命令为:
flush tables with read lock;
当执行上面这个命令后,所有的表都变成只读状态,数据更新或者字段更新都将会被阻塞,可以使用下面命令解锁:
unlock tables;
全局锁一般会在什么时候用到呢?
全局锁一般用在整个库做备份(mysqldump)时。也就是说在整个备份过程中,整个库都是只读的。
- 如果是主库备份,会导致业务不能修改数据;
- 如果是