【面试干货】MySQL 三种锁的级别(表级锁、行级锁和页面锁)

【面试干货】MySQL 三种锁的级别(表级锁、行级锁和页面锁)

  • 1、表级锁
  • 2、行级锁
  • 3、页面锁
  • 4、总结

    💖The Begin💖点点关注,收藏不迷路💖

    在 MySQL 数据库中,锁是控制并发访问的重要机制,可以保证数据的一致性和完整性。MySQL 提供了三种不同级别的锁:表级锁、行级锁和页面锁。本文将对这三种锁的级别进行详细介绍和比较。

    1、表级锁

    • 特点:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,因此并发度最低。
    • 适用场景:当对整张表进行操作时,适合使用表级锁。

      2、行级锁

      • 特点:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,因此并发度也最高。
      • 适用场景:当对表中的某些行进行操作时,适合使用行级锁。

        3、页面锁

        • 特点:开销和加锁时间介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,因此并发度一般。
        • 适用场景:一般情况下,较少使用页面锁,但在某些特定场景下,例如对页面大小有限制的存储引擎,可能会使用页面锁。

          4、总结

          • 锁级别选择:根据具体情况选择合适的锁级别,权衡加锁速度、并发度和锁冲突的概率。

          • 避免死锁:无论是哪种级别的锁,在应用中都需要注意避免死锁的发生,可以通过合理的事务设计和加锁顺序来降低死锁的概率

            💖The End💖点点关注,收藏不迷路💖