Mysql的各种锁
...大约 1 分钟MySQL数据库
锁 | 简介 |
---|---|
全局锁 | 对整个数据库进行加锁,使其处于只读状态,主要用于全库逻辑备份。这会阻塞所有数据操作(如 INSERT、UPDATE、DELETE)和表结构更改操作(如 ALTER TABLE、DROP TABLE)。 |
表级锁 | 1、表锁:对整张表进行锁定,它实现简单、资源消耗低且加载速度快。但并发性能较差。MyISAM 和 InnoDB 存储引擎均支持此锁。 锁定整张表后,其他事务无法对该表进行写操作,但可以读取数据。 🚀假设你有一张用户表 users ,你需要对这张表进行批量更新操作🚀可以使用表级锁锁定 users 表,确保在更新过程中没有其他事务修改数据🚀锁定期间,其他事务可以读取数据,但不能插入、更新或删除数据 |
行级锁 | 粒度最小,支持高并发,但加载开销较大,可能导致死锁。 |

锁 | 简介 |
---|---|
共享锁 (S 锁) | 读锁,事务在读取的时候获取共享锁,共享锁之间兼容。 |
排他锁 (X 锁) | 又称为写锁/独占锁,事务在修改记录的时候获取排他锁,不允许多个事务同时获取。排他锁之间不兼容。 |