面试数据库八股文十问十答第八期
相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!
⭐点赞⭐收藏⭐不迷路!⭐
1)MySQL 锁类型
MySQL 中常见的锁类型包括:
- 行级锁(Row-Level Locks):在行级别进行加锁,使得其他事务无法修改或删除已锁定的行。MySQL 使用的是一种称为多版本并发控制(MVCC)的行级锁。
- 表级锁(Table-Level Locks):在整个表上进行锁定,限制其他事务对整个表的访问。这种锁定级别一般会导致并发性能下降,因为它会阻止其他事务对表的读写操作。
- 页级锁(Page-Level Locks):在数据页级别进行加锁,这是一种介于行级锁和表级锁之间的锁定级别。不过,MySQL InnoDB 存储引擎并不直接支持页级锁。
- 意向锁(Intention Locks):用于表锁定时,通知其他事务该表即将被加锁的类型,以避免死锁情况的发生。
2)乐观锁和悲观锁的区别
- 悲观锁:在操作数据时,认为其他事务可能会修改数据,因此在操作之前会先对数据进行加锁,确保在整个事务过程中数据不会被其他事务修改。例如,在读取数据时,会加上排他锁,防止其他事务修改数据,直到当前事务释放锁为止。
- 乐观锁:相对于悲观锁,乐观锁假设在整个事务过程中