数据库锁机制

一、数据库锁的分类

数据库锁机制根据不同的维度可分为多种类型:

  1. 按锁的粒度划分

    • 行级锁(Row-Level Lock):锁定单行数据,粒度最细,并发度高,如InnoDB引擎的行锁。
    • 表级锁(Table-Level Lock):锁定整张表,并发度低,如MyISAM引擎的表锁。
    • 页级锁(Page-Level Lock):锁定数据页(一组行),介于行锁和表锁之间。
  2. 按锁的模式划分

    • 共享锁(Shared Lock/S锁):允许其他事务读,但禁止写。例如:SELECT ... LOCK IN SHARE MODE
    • 排他锁(Exclusive Lock/X锁):禁止其他事务读写。例如:SELECT ... FOR UPDATE
    • 意向锁(Intention Locks):表明事务即将对某行或表加锁,用于快速检测表级冲突。
  3. 按实现策略划分

    • 悲观锁(Pessimistic Locking):假设高并发冲突,操作前加锁。
    • 乐观锁(Optimistic Locking):假设低冲突,更新时检查版本。

二、乐观锁与悲观锁的区别
维度 乐观锁 悲观锁

你可能感兴趣的:(运维,数据库,sql,mysql)