返回顶部
首页 > 资讯 > 数据库 >MYSQL INNODB replace into 死锁 及 next key lock 浅析
  • 735
分享到

MYSQL INNODB replace into 死锁 及 next key lock 浅析

2024-04-02 19:04:59 735人浏览 八月长安
摘要

原创:全文带入了大量自我认知和理解,可能错误,因为水平有限,但是代表我努力分析过。 一、问题提出 问题是由姜大师提出的、问题如下: 表: Mysql> show create table c \

原创:全文带入了大量自我认知和理解,可能错误,因为水平有限,但是代表我努力分析过。



一、问题提出
问题是由姜大师提出的、问题如下:
表:
Mysql> show create table c \G
*************************** 1. row ***************************
       Table: c
Create Table: CREATE TABLE `c` (
  `a` int(11) NOT NULL AUTO_INCREMENT,
  `b` int(11) DEFAULT NULL,
  PRIMARY KEY (`a`),
  UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB 
1 row in set (0.01 sec)
开启两个会话不断的执行
replace into c values(NULL,1);
会触发死。问死锁触发的原因。

我使用的环境:
mysql 5.7.14 debug版本、隔离级别RR、自动提交,很显然这里的c表中的可以select出来的记录始终是1条
只是a列不断的增大,但是这里实际存储空间确不止1条,因为从heap no来看二级索引中,heap no 已经到了
7,也就是有至少7(7-1)条记录,只是其他记录标记为del并且被purge线程放到了page free_list中。

二、准备工作和使用方法
1、稍微修改了源码关于锁的打印部分,我们知道每个事物下显示锁内存结构lock 
   struct会连接成一个链表,只要按照顺序打印出内存lock struct就打印出了
   所有关于这个事物显示锁全部信息和加锁顺序如下:

点击(此处)折叠或打开

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL INNODB replace into 死锁 及 next key lock 浅析

本文链接: https://lsjlt.com/news/45956.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MYSQL INNODB replace into 死锁 及 next key lock 浅析
    原创:全文带入了大量自我认知和理解,可能错误,因为水平有限,但是代表我努力分析过。 一、问题提出 问题是由姜大师提出的、问题如下: 表: mysql> show create table c \...
    99+
    2024-04-02
  • innodb next-key lock引发的死锁现象分析
    这个例子是我在网上看到的,我分析了很久才弄明白锁产生的具体过程。 数据库的事务隔离级别是RR。 建测试表: CREATE TABLE `LockTest` (  ...
    99+
    2024-04-02
  • 浅谈MySQL next-key lock 加锁范围
    前言 某天,突然被问到 MySQL 的 next-key lock,我瞬间的反应就是: 这都是啥啥啥??? 这一个截图我啥也看不出来呀? 仔细一看,好像似曾相识,这不是《MySQL 45 讲》里面的内容么? 什么...
    99+
    2022-06-01
    MySQL next-key lock 加锁范围 MySQL next-key lock
  • MySQL中next-key lock加锁范围的示例分析
    这篇文章主要介绍MySQL中next-key lock加锁范围的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言某天,突然被问到 MySQL 的 next-key lock,我瞬间的反应就是:这都是啥啥啥?...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作