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

做个什么网站北京互联网公司集中在哪些地方

做个什么网站,北京互联网公司集中在哪些地方,备案期间关网站吗,找人做微信网站文章目录 1、 InnoDB的三种行锁2、常见的加锁语句2.1、常见隐式加锁语句2.1、常见显示加锁语句 3、加锁的2条规则4、案例4.1、唯一索引等值查询4.2、唯一索引范围查询4.3、非唯一索引等值查询4.4、非唯一索引范围查询 InnoDB 存储引擎中的行锁的加锁规则。 1、 InnoDB的三种行锁… 文章目录 1、 InnoDB的三种行锁2、常见的加锁语句2.1、常见隐式加锁语句2.1、常见显示加锁语句 3、加锁的2条规则4、案例4.1、唯一索引等值查询4.2、唯一索引范围查询4.3、非唯一索引等值查询4.4、非唯一索引范围查询 InnoDB 存储引擎中的行锁的加锁规则。 1、 InnoDB的三种行锁 Record Lock记录锁锁住某一行记录 Gap Lock间隙锁锁住一段左开右开的区间 Next-key Lock临键锁锁住一段左开右闭的区间 next-key lock 实际就是 间隙锁记录锁 2、常见的加锁语句 2.1、常见隐式加锁语句 1、党见的DML语句update、delete、insertInnoDB 会自动给相应的记录行加写锁 2、默认情况下对于普通 SELECT 语句InnoDB 不会加任何锁但是在 Serializable 隔离级别下会加行级读锁 2.1、常见显示加锁语句 1、SELECT * FROM table_name WHERE … FOR UPDATE加行级写锁 2、SELECT * FROM table_name WHERE … LOCK IN SHARE MODE加行级读锁 3、加锁的2条规则 1查找过程中访问到的对象才会加锁 2加锁的基本单位是 Next-key Lock 4、案例 一张order表id为主键唯一索引order_id普通索引非唯一索引remark普通列无索引 idorder_idremark104a158b2016c2532d3064e 4.1、唯一索引等值查询 唯一索引等值查询时查询的记录是否存在加锁的规则也会不同 1查询记录存在时Next-key Lock会退化成记录锁 2查询记录不存在时Next-key Lock会退化成间隙锁 查询记录存在 SELECT * from t_order to2 where id 25 for update;结合加锁的两条核心查找过程中访问到的对象才会加锁 加锁的基本单位是 Next-key Lock左开右闭我们可以分析出这条语句的加锁范围是 (20, 25] 不过由于这个唯一索引等值查询的记录 id 25 是存在的因此Next-key Lock 会退化成记录锁因此最终的加锁范围是 id 25 这一行 可以在mysql客户端开启2个事物验证 事物一 start transaction; //锁住记录Id 25的这条 select * from t_order to2 where id 25 for update commit; 事物二 start transaction; //可以插入成功 insert into t_order(id,order_id,remark )values(21,44,f) rollback;查询的记录不存在 再来看查询的记录不存在的案例 SELECT * from t_order to2 where id 21;结合加锁的两条核心查找过程中访问到的对象才会加锁 加锁的基本单位是 Next-key Lock左开右闭我们可以分析出这条语句的加锁范围是 (20, 25] 为什么是 (2025] 而不是 (20, 22]因为 id 22 的记录不存在InnoDB 先找到 id 20 的记录发现不匹配于是继续往下找发现 id 25因此id 25 的这一行被扫描到了所以整体的加锁范围是 (20, 25] 事物一 start transaction; //锁住记录Id 25的这条 select * from t_order to2 where id 25 for update commit; 事物二 start transaction; //阻塞等待事物一提交 insert into t_order(id,order_id,remark )values(21,44,f) rollback;4.2、唯一索引范围查询 唯一索引范围查询的规则和等值查询的规则一样只有一个区别就是唯一索引的范围查询需要一直向右遍历到第一个不满足条件的记录。 select * from t_order to2 where id 20 and id 22 for update;先来看语句查询条件的前半部分 id 20因此这条语句最开始要找的第一行是 id 20结合加锁的两个核心需要加上 Next-key Lock (15,20]。又由于 id 是唯一索引且 id 20 的这行记录是存在的因此会退化成记录锁也就是只会对 id 20 这一行加锁。 再来看语句查询条件的后半部分 id 22由于是范围查找就会继续往后找第一个不满足条件的记录也就是会找到 id 25 这一行停下来然后加 Next-key Lock (20, 25]重点来了但由于 id 25 不满足 id 22因此会退化成间隙锁加锁范围变为 (20, 25)。 所以上述语句在主键 id 上的最终的加锁范围是 Record Lock id 20 以及 Gap Lock (20, 25) 4.3、非唯一索引等值查询 非唯一索引进行等值查询的时候根据查询的记录是否存在加锁的规则会有所不同 1、当查询的记录是存在的除了会加 Next-key Lock 外还会额外加间隙锁规则是向下遍历到第一个不符合条件的值才能停止也就是会加两把锁 查找记录的左区间加 Next-key Lock右区间加 Gap lock 2、当查询的记录是不存在的Next-key Lock 会退化成间隙锁这个规则和唯一索引的等值查询是一样的 查询记录存在 select * from t_order to2 where order_id 16 for update;结合加锁的两条核心这条语句首先会对普通索引 a 加上 Next-key Lock范围是 (8,16] 又因为是非唯一索引等值查询且查询的记录 order_id 16 是存在的所以还会加上间隙锁规则是向下遍历到第一个不符合条件的值才能停止因此间隙锁的范围是 (16,32) 所以上述语句在普通索引order_id 上的最终加锁范围是 Next-key Lock (8,16] 以及 Gap Lock (16,32)。 验证开启2个事物 事物一 start transaction; select * from t_order to2 where order_id 16 for update; commit;事物二 start transaction; //阻塞等待事物一提交 INSERT into t_order(id,order_id ,remark )values (35,9,ffff) commit;查询记录不存在 select * from t_order to2 where order_id 18 for update;结合加锁的两条核心这条语句首先会对普通索引 order_id 加上 Next-key Lock范围是 (16,32] 但是由于查询的记录order_id 18 是不存在的因此 Next-key Lock 会退化为间隙锁即最终在普通索引 a 上的加锁范围是 (16,32)。 4.4、非唯一索引范围查询 范围查询需要一直向右遍历到第一个不满足条件的记录和唯一索引范围查询不同的是非唯一索引的范围查询并不会退化成 Record Lock 或者 Gap Lock。 start transaction; select * from t_order to2 where order_id 16 and order_id 18 for update;先来看语句查询条件的前半部分 order_id 16因此这条语句最开始要找的第一行是 order_id 16结合加锁的两个核心需要加上 Next-key Lock (8,16]。虽然非唯一索引 order_id 16 的这行记录是存在的但此时并不会像唯一索引那样退化成记录锁。 再来看语句查询条件的后半部分 order_id 18由于是范围查找就会继续往后找第一个不满足条件的记录也就是会找到 id 32 这一行停下来然后加 Next-key Lock (16, 32]。虽然 id 32 不满足 id 18但此时并不会向唯一索引那样退化成间隙锁。 所以上述语句在普通索引 a 上的最终的加锁范围是 Next-key Lock (8, 16] 和 (16, 32]也就是 (8, 32]。
http://www.w-s-a.com/news/416182/

相关文章:

  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展
  • 建德网站网站建设规划设计书