码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL--行级锁与表级锁


    原文网址:MySQL--行级锁与表级锁_IT利刃出鞘的博客-CSDN博客

    简介

    说明

    本文介绍MySQL的行级锁与表级锁。

    锁的类型

    锁类型

    死锁

    锁定粒度(并发性)

    适用场景

    表级锁

    不会死锁

    最大,发生锁冲突的概率最大(并发性低)

    场景1:读多写少;

    场景2:写特别多。若用行锁,会导致事务执行效率低,可能造成其他事务长时间锁等待和锁冲突。

    行级锁

    会死锁

    最小,发生锁冲突的概率最低(并发性最高)

    并发量大。

    页面锁

    会死锁

    居中,并发一般

    不同的存储引擎的锁机制

    存储引擎支持的锁说明
    InnoDB表级锁、行级锁(默认)。InnoDB行级锁基于索引实现。若查询字段无索引或索引失效,则使用表锁。
    MyISAM表级锁
    MEMORY表级锁
    BDB表级锁、页面锁

    行锁

    概述

    说明

    行锁只在InnoDB中。有两种锁:共享锁(Share Lock)(也称为:读锁)、独占锁(Exclusive Lock)。共享锁也称为:读锁;独占锁也称为:写锁。

    InnoDB实现了以下两种类型的行锁。意向锁是InnoDB自动加的,不需用户干预。

    • 共享锁(S):允许获得共享锁的事务去读一行,阻止其他事务获得相同数据集的排他锁。
    • 排他锁(X):允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享锁和排他锁。另外,为了允许行锁和表锁共存,实现多粒度锁机制,InnoDB还有两种内部使用的意向锁(Intention Locks),这两种意向锁都是表锁。
    • 意向共享锁(IS):事务打算给数据行加行共享锁,事务在给一个数据行加共享锁前必须先取得该表的IS锁。(Intention Share)
    • 意向排他锁(IX):事务打算给数据行加行排他锁,事务在给一个数据行加排他锁前必须先取得该表的IX锁。(Intention Exclusive)

    上述锁模式的兼容情况具体如下表所示。如果一个事务请求的锁模式与当前的锁兼容,InnoDB就将请求的锁授予该事务;反之,如果两者不兼容,该事务就要等待锁释放。

    上边只是部分内容,为便于维护,本文已迁移到此地址:MySQL-行级锁与表级锁 - 自学精灵

  • 相关阅读:
    MySQL常见的性能优化方法技巧以及示例
    Springboot毕设项目个人博客系统开ywurw(java+VUE+Mybatis+Maven+Mysql)
    Postgresql中如何处理逻辑复制冲突
    中科芯与IAR共建生态合作,IAR集成开发环境全面支持CKS32系列MCU
    11. 对象创建模式之 Builder模式(构建器)(不常用)
    K8S集群Pod资源自动扩缩容方案
    SpringBoot快速部署(1)—docker不使用nginx
    一文揭开,测试外包公司的真 相
    面试阿里,倒在了第4轮后,才幡然醒悟——论系统学习的重要性
    如何下载修复xinput1_3.dll并避免常见错误 ,详解多种实用解决方法
  • 原文地址:https://blog.csdn.net/feiying0canglang/article/details/127114446
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号