• mysql 原理 ~ 常规锁


    一 模式 RR模式
    二 mysql锁相关场景
      1 有间隙的地方就可能有间隙锁,并非只有辅助索引的场景下才会存在gap lock,典型场景 id主键的范围查询
      2 varchar的范围锁定原理和int类似,不过是按照字母排列顺序
      3 rc模式同样可能存在间隙锁 典型场景 外键
    三 间隙锁加锁顺序
    查询方式
      1 等值查询,如果是唯一索引,next-key lock会退化为行锁,如果不是唯一索引,需要访问到第一个不满足条件的值,此时next-key lock会退化为间隙锁;
      2 范围查询:无论是否是唯一索引,范围查询都需要访问到不满足条件的第一个值为止
    四 索引类型
      非唯一性索引 会锁定条件范围上下不符合条件的记录范围,左开右闭
    五 间隙锁针对操作
      1 针对锁定范围的插入操作
      2 针对锁定范围的行的更新和删除,常见于不符合条件记录的边界锁定
    六 总结
      1 采用主键和唯一性索引进行操作
      2 采用limit进行操作,减少范围锁定的操作
      3 对于order by desc+范围查找的操作,会选择<=范围=>扫描方式,要尤其注意

      4对于 in 里面的值  1 是根据每个值扫描逐渐加锁

                                    2 和in内部的值的顺序无关

  • 相关阅读:
    引用数据类型:字符串和数组
    java流程控制
    java基本类型-八大基本数据类型(4类8种)
    Java标识符
    Java注释
    虚拟环境管理virtualenv
    pipenv管理模块和包
    有关线程的说法?
    TCP三次握手的序列号和确认号的计算
    jenkins的安装
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/8393197.html
Copyright © 2020-2023  润新知