当前位置: 首页 > news >正文

企业网站推广联系方式房产备案查询系统

企业网站推广联系方式,房产备案查询系统,网站建设 网络推广 网站优化,惠州市博罗县建设局网站前言 mysql 的表锁之 AUTO_INC, 是我们自增长的时候做并发控制的锁 主要是用于 自增长生成新的 id 的时候的控制 在前面的文档中, 我们又看到 mysql 这边自增长的处理的相关的大概脉络 但是 对于一些 并发控制的细节, 我们当时 应该是直接忽略掉了 我们这里就来看一下…

前言

mysql 的表锁之 AUTO_INC, 是我们自增长的时候做并发控制的锁 

主要是用于 自增长生成新的 id 的时候的控制 

在前面的文档中, 我们又看到 mysql 这边自增长的处理的相关的大概脉络

但是 对于一些 并发控制的细节, 我们当时 应该是直接忽略掉了  

我们这里就来看一下 mysql 这里的 AUTO_INC 的一个实现 

当然 它的实现 有几种方式, 模式选择有 0, 1, 2

模式为 0 的场景下, 主要是 基于乐观锁, 每一个表映射一个 mutex, 来尝试乐观获取锁 

模式为 1 的场景下, 对于 INSERT, REPLACE 命令主要是 基于乐观锁, 每一个表映射一个 mutex, 来尝试乐观获取锁, 其他的场景基于 表自增长锁

模式为 2 的场景下, 主要是基于和前面的 表共享锁, 表排他锁 一个级别的 表自增长锁

我们这里核心关注的是 表自增长锁 的相关实现

 

 

表自增长锁

获取 LOCK_AUTO_INC 这边的实现 和 获取其他表级别的锁的主流程一致

差异在于 LOCK_AUTO_INC 和其他锁的兼容性, 在之前 表共享锁, 表排他锁 的场景下面, 为了简化问题, 我们是跳过了 LOCK_AUTO_INC, 这里我们来讲 LOCK_AUTO_INC 代入进来看看 

e792b2929fb6978302d6e87fc3d60a29.png

 

从这里可以看到, 如果是我们 LOCK_AUTO_INC 这边和 表意向锁 是兼容的

和 LOCK_AUTO_INC 是不兼容的, 和 表共享锁, 表排他锁 是不兼容的

总结下来意思就是, 如果是 事务1 获取的是 行锁, 那么是不影响 事务2 获取 表自增长锁 的

如果是 事务1 获取的是 表自增长锁, 那么是会阻塞 事务2 获取 表自增长锁 的

如果是 事务1 获取的是 表共享锁, 表排他锁, 那么是会阻塞 事务2 获取 表自增长锁 的

b806a5361a2750bb7b50bb42a5bda834.png

 

整体的这边获取 表自增长锁 这边的具体的 锁表策略 分派方式如下

基本上三种策略就是 mutex乐观锁 + mutex乐观锁, 表自增长锁 + 表自增长锁 

e04368ca75dc970792fde762d1bacd4f.png

 

 

表自增长锁的获取和释放

表自增长锁 的获取是在执行 insert sql 的时候

d0bf6e144eb8d6333668599078ccfe16.png

 

然后释放 表自增长锁 是在语句执行完成之后释放的 如下 

304289f9f22d792835fc5167d90674c4.png

 

 

表自增长锁阻塞的 N 中方式

表自增长锁 的阻塞方式 就是上面提及的 表共享锁, 表排他锁, 表自增长锁 被持有的情况下  

假设我们这里尝试模拟 各种阻塞的方式, 事务1先进行执行, 然后事务2尝试获取表排他锁, 产生阻塞 

事务2 这边执行固定的 sql 语句如下 

begin;
INSERT INTO `test_02`.`tz_test_02`(`field1`, `field2`) VALUES ('field1', '11');
commit;

 

事务1获取 表排他锁 导致 事务2获取MDL元数据锁 阻塞

begin;
lock tables tz_test_02 write;
-- sleep 10min
unlock tables;
commit;

 

事务1获取 表共享锁 导致 事务2获取MDL元数据锁 阻塞

begin;
lock tables tz_test_02 read;
-- sleep 10min
unlock tables;
commit;

 

 

事务1 获取了 表自增长锁, 导致事务2获取MDL元数据锁 阻塞        

 

 

 

 

 

http://www.yayakq.cn/news/584801/

相关文章:

  • 昆山网站建设首页电商网站建设期末考试
  • 新手怎么优化网站徐州网站建设多少钱
  • 免费推广网站入口2023山东建设工会网站
  • 网站开发需要的语言扁平化风格网站模板
  • 长沙建网站设计公司电商货源网站
  • 新密做网站推广常州网站制作价格
  • 网站建设公司哪些主要哪些宁波网站建设报价
  • wordpress 自带分页南昌做网站优化价格
  • 银川网站建设公司网页设计美工是做什么
  • 昆明做网站建设找谁易雅达网站建设公司
  • 手机网站开发计划app开发定制公司名单
  • ios风格网站模板网络推广阶段策划
  • 泰安集团网站建设多少钱wordpress评论怎么去掉网址
  • 酒泉网站建设有哪些企业品牌网站有哪些
  • 山东川畅科技联系 网站设计v9双语版网站怎么做
  • 顺德做网站的公司海南网站建设公司哪家好
  • 上海市区网站设计制作公司高端网站设计公司名单
  • 怎么做娱乐电玩网站wordpress newsletter 插件
  • 江门网站上排名网络规划设计师正高级任职资格
  • 江苏常州青之峰做网站罗湖网站建设58
  • 农产品电子商务网站建设企业网站建设方案投标书
  • 做空间的网站吗福山区建设工程质量检测站网站
  • 网站seo优化8888网站域名更改
  • 使用iis6搭建网站网络规划设计师可以同时报名吗
  • 网站屏幕自适应桂林象鼻山夜景
  • 上传文档网站开发宣城网站建设价格
  • 网站建设赛车网站建设皖icp
  • 站外引流推广渠道技能培训网
  • 潍坊网站优化公司哪家好营销方案策划书怎么写
  • 那些网站可以做海报搜索引擎网站推广可以自己做吗