zoukankan      html  css  js  c++  java
  • MySQL锁总结

    一:innodb行锁是如何实现:

    1:innodb的行锁是通过给索引上的索引项加锁来实现的

    2:通过索引进行数据检索,innodb才会使用行级锁,否则innodb会使用表锁(锁住索引的所有记录)

    二:innodb算法之锁(临键锁、间隙锁、记录锁):都是根据innodb存储引擎

    1:临键锁(Next-Key Locks):当SQL执行按照索引进行数据的检索时,且查询条件为范围查询(between 、and、 >、<等),且有数据命中时,该SQL语句加上的行锁为Next-Key Locks

    具体实现:锁住命中记录区间 + 下一个区间(左开右闭)

    临键锁如下图所示:

    2:间隙锁(Gap-Lock):范围查询或者是等值查询,且记录不存在,当记录不存在,临键锁退化成GAP锁,且gap锁之间不冲突,

    锁住的范围是左开右开区间

    间隙锁如下图所示:

    3:记录锁(Record-Lock)

    当SQL执行按照唯一性(primary key, unique )索引进行数据的检索时,且查询条件等值匹配且查询的数据命中存在,这时SQL语句加上的锁为记录锁

    具体实现:锁住具体索引的索引项

    记录锁如下图所示

     

    郭慕荣博客园
  • 相关阅读:
    学习进度三
    开课博客之个人介绍
    个人作业--数组
    学习进度二
    开学第一次测试
    实现点击不同的按钮加载不同的css
    Web存储
    HTML5(常用的表单控件)
    JS(获得当前时间并且用2015-01-01格式表示)
    JS(event事件)
  • 原文地址:https://www.cnblogs.com/jelly12345/p/11898737.html
Copyright © 2011-2022 走看看