mysqlinnodb了解 lq

  1. 锁的机制
    • MyISAM 采用表级锁(table-level locking)。
    • InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁
  2. 表级锁和行级锁对比:
    • 表级锁:MySQL 中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM 和 InnoDB 引擎都支持表级锁。
    • 行级锁: MySQL 中锁定 粒度最小 的一种锁,只针对当前操作的行进行加锁。 行级锁能大大减少数据库操作的冲突。其加锁粒度最小,并发度高,但加锁的开销也最大,加锁慢,会出现死锁。
  3. InnoDB 存储引擎的锁的算法有三种:
    • Record lock:记录锁,单个行记录上的锁
    • Gap lock:间隙锁,锁定一个范围,不包括记录本身
    • Next-key lock:record+gap 临键锁,锁定一个范围,包含记录本身
  4. innodb事务:
    • MySQL InnoDB 引擎使用 redo log(重做日志) 保证事务的持久性,使用 undo log(回滚日志) 来保证事务的原子性。
    • MySQL InnoDB 引擎通过 锁机制、MVCC 等手段来保证事务的隔离性( 默认支持的隔离级别是 可重复度 REPEATABLE-READ )。
原文地址:https://www.cnblogs.com/rbwbear/p/15568266.html