当前位置:首页 > 数据库 > 正文内容

第三十九讲:insert句子的锁为什么这么多?

邻居的猫1个月前 (12-09)数据库1097

第三十九讲:insert句子的锁为什么这么多?

简概:

依旧是导言

​ 在上一篇文章中,我说到 MySQL 对自增主键锁做了优化,尽量在申请到自增 id 今后,就开释自增锁。因而,insert 句子是一个很轻量的操作。

​ 不过,这个定论关于“一般的 insert 句子”才有用。也就是说,还有些 insert 句子是归于“特殊情况”的,在履行过程中需求给其他资源加锁,或许无法在申请到自增 id 今后就立马开释自增锁。

​ 那么,今日这篇文章,咱们就一起来聊聊这个论题。insert … select 句子咱们先从昨日的问题说起吧。表 t 和 t2 的表结构、初始化数据句子如下,今日的比如咱们仍是针对这两个表打开。

CREATE TABLE `t` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `c` int(11) DEFAULT NULL,
  `d` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `c` (`c`)
) ENGINE=InnoDB;

insert into t values(null, 1,1);
insert into t values(null, 2,2);
insert into t values(null, 3,3);
insert into t values(null, 4,4);

create table t2 like t

​ 现在,咱们一起来看看为什么在可重复读阻隔级别下,binlog_format=statement 时履行:

insert into t2(c,d) select c,d from t;

​ 这个句子时,需求对表 t 的一切行和空隙加锁呢?其实,这个问题咱们需求考虑的仍是日志和数据的一致性。咱们看下这个履行序列:


图 1 并发 insert 场景

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=540

分享给朋友:

“第三十九讲:insert句子的锁为什么这么多?” 的相关文章

读数据维护:作业负载的可恢复性04备份与档案

读数据维护:作业负载的可恢复性04备份与档案

1.       差异备份与档案 1.1.         两个彻底不同的操作 1.1.1.           要完成的是两个彻底不同的方针 1.1.2.           备份(backup) 1.1.3.           档案(archive) 1.2.         有...

数据库云服务器,数据库云服务器的优势与选择指南

数据库云服务器,数据库云服务器的优势与选择指南

数据库云服务器是一种基于云计算的数据库服务,它提供了弹性的计算资源、存储资源和网络资源,使得用户可以轻松地创建、管理和扩展数据库。与传统的本地数据库服务器相比,数据库云服务器具有以下优点:1. 弹性伸缩:用户可以根据需要动态地调整数据库的计算资源和存储资源,以满足不同的业务需求。当业务量增加时,可以...

mysql进入数据库,轻松掌握数据库访问技巧

在MySQL中,要进入一个数据库,首先需要登录到MySQL服务器。登录成功后,可以使用 `USE` 语句来选择特定的数据库。下面是具体的步骤:1. 登录MySQL服务器: 打开命令行工具,输入以下命令: ``` mysql u username p ``` 这里 `usernam...

大数据日志分析,二、大数据日志分析概述

大数据日志分析,二、大数据日志分析概述

1. 数据收集: 确定需要分析的日志数据源,例如服务器日志、应用程序日志、网络日志等。 使用日志收集工具(如Fluentd、Logstash等)从各个数据源收集日志数据。2. 数据存储: 将收集到的日志数据存储在适合大数据分析的存储系统中,如Hadoop HDFS、Amazon S...

大数据英语,大数据在英语教学中的应用与未来展望

大数据英语,大数据在英语教学中的应用与未来展望

1. Data collection:数据收集2. Data storage:数据存储3. Data processing:数据处理4. Data analysis:数据分析5. Data visualization:数据可视化6. Data mining:数据挖掘7. Machine learni...

大数据金融的含义,大数据金融的定义与概述

大数据金融的含义,大数据金融的定义与概述

大数据金融,也被称为大数据金融科技或金融科技(FinTech),是一种利用大数据、人工智能、云计算、区块链等先进技术手段,对传统金融业务进行创新和优化,以提高金融服务的效率、降低成本、增强风险管理能力、提升用户体验的金融模式。大数据金融的主要特点包括:1. 数据驱动决策:通过收集和分析大量数据,包括...