互联网面试宝典

您现在的位置是: 首页 > MySQL

问题详情

简单说一下 MySQL 锁原理?

面试宝典 2023-06-12 Web前端开发工程师 43
MySQL 锁机制主要分为两种:行锁和表锁。

行锁是指对于数据表中的某一行进行锁定,其他事务只能等待当前事务释放该锁后才能访问该行数据。行锁分为共享锁和排它锁。共享锁可以让多个事务并发读取同一行数据,但是都不能对其进行写操作;排它锁则只允许当前事务进行修改,其他事务无法读写该行数据。

表锁是指对整个数据表进行锁定,其他事务无法修改和读取该表的数据。表锁一般用于涉及到大量数据修改和表结构修改的操作。

MySQL 锁实现主要通过两种方式:锁表和行级锁。

锁表是指对整个数据表进行锁定。该方式实现简单且调度效率高,但是会阻塞其他事务对于该表的访问。

行级锁是指对数据表中某一行进行锁定。该方式提供了更细粒度的锁定机制,能够实现高并发并且避免表锁带来的性能问题。但是因为需要针对每一行的修改都进行加锁和解锁,所以会影响性能。另外,行级锁只能在存储引擎层实现,MySQL 本身并没有内置行级锁的机制。常见的存储引擎例如 InnoDB 就支持行级锁。