关于MySQL建表对DML的影响

今天一位同学问到线上曾经碰到过连续建表,导致阻塞普通的insert、update等。不过也没有保留现场。因此有疑问为什么建表会影响DML?

 

分析

         首先这个现象不是在所有场景都会碰到(否则MySQL的用户们早就跳起来了)。

一来建表这个操作本身很快,只涉及到写表定义文件和初始化表空间。中间涉及到redo和undo的操作也很少(这里只讨论InnoDB表)。因此除非碰到磁盘IO响应不了,否则多数情况下建表操作很快结束,不会“稳定复现”

二来即使由于io原因,建表过程执行时间较长,建表操作也不会阻塞一些DML操作。

 

         因此只能从代码出发看冲突的case。

 

         假设session 1正在执行一个create table操作,且由于io原因阻塞在写表空间文件这个步骤上。讨论session2作如下操作的场景。

 

无主键表insert

         此时insert操作由于需要申请系统自增主键,需要对dict_sys->mutex加锁。而这个锁需要等session1建表操作完成后才释放,因此出现等待。

 

有外键表的操作

         此时session2需要判断外键一致性,需要对dict_sys->mutex加锁。

         这里包含几个方面:外键约束的child表插入数据时和parent表删除数据时,已经这两个表的关联外键字段被修改时,均会触发等待。

 

有同学会说我们线上这两种情况都禁止了,是不是就不会因为这个锁的原因导致阻塞dml?

 

新打开表时

         若这个insert操作需要新打开一个表时,需要根据表名从字典中取出信息,也会触发等待。

         即使原来已经打开过的表,也会因为执行了flush table或者表空间淘汰而要求下次访问需要重新打开。

 

影响的其他操作

         顺着dict_sys->mutex我们还可以发现有以下几个操作,若发生在session2,都会被阻塞

1)                 1) Flush tables

2)                    select * from information_schema.tables;

 

        2) 以上两个因为都要访问到表对象列表,还比较好理解

3)                 select * from information_schema.innodb_sys_tables;

 

       3)实际上可以用另外一个锁来单独处理sys_tables

4)                  show create table another_table

    这个是因为必须判断是否有外键关联

 

         简单留个问题:为什么show tables并不会被阻塞?

1、 快速掌握R:初学者的计量经济学指南 本博文旨在为初学者提供一个快速掌握R语言的指南,特别是针对计量经济学领域的应用。内容涵盖了R的基本操作、数据管理、可视化、函数编写以及高级统计分析方法,如OLS回归、异方差修正和集群标准误差计算等。通过实际示例和详细说明,帮助读者在数据分析和科学研究中更加得心应手。 阅读详情

相关推荐

【论文泛读|附源码】如何进行动力学重构? 神经网络自动编码器结合SINDy发现数据背后蕴含的方程

这一篇文章叫做 **数据驱动**的**坐标发现与方程发现算法**。想回答的问题很简单,就是根据数据写方程。 想想牛顿的处境,如何根据各种不同物体下落的数据,写出万有引力的数学公式的。这篇文章就是来做这件事的。当然,这篇论文并没有从牛顿视角,完全去思考牛顿所想。而是利用现有的**深度学习技术** 和 **动力学重构的方法** 。提出了一种框架,基于现有的计算机技术,去发现物质运动背后的物理规律。 这里直接给出这篇方法的核心思路图,我们后面会逐个讲解。

qq5q13638的博客 2458

【MySQL】表(DDL和DML)

1. 创建表 1.语法: create table tablebname( columnname dateType(length), columnname dateType(length), columnname dateType(length), columnname dateType(length), columnname dateType(length) ); ...

你今天真好看呀 2321

实战案例:用多智能体系统模拟房地产市场的架构设计

房地产市场是典型的复杂自适应系统:买方纠结“要不要上车”、卖方盘算“挂多少钱能快速成交”、中介忙着“撮合两边赚佣金”、政府琢磨“怎么调政策稳房价”——每一个参与者的微小决策,最终都会汇聚成“房价暴涨”“成交冰点”这样的宏观现象。传统的计量经济学模型(比如线性回归)假设“所有人都是理性人”,但现实中没人能算清所有变量——你可能因为“同事买了学区房”就跟风,也可能因为“怕失业”而放弃买房。这时候,多智能体系统(MAS)

移动开发前沿的博客 1124

mysql创建表步骤dml_MySQL基础

本单元目标一、为什么要学习数据库二、数据库的相关概念DBMS、DB、SQL三、数据库存储数据的特点四、初始MySQLMySQL产品的介绍MySQL产品的安装 ★MySQL服务的启动和停止 ★MySQL服务的登录和退出 ★MySQL的常见命令和语法规范五、DQL语言的学习 ★基础查询 ★条件查询 ★排序查询 ★常见函数 ★分组函数 ★分组查询 ★连接查询 ★子查询 √分页查询 ★union联合查询 ...

weixin_39933724的博客 659

cs188Inference in Bayes Nets(贝叶斯网络的推理)

cs188Inference in Bayes Nets贝叶斯网络的推理Question1(3 points):Bayes Net StructureQuestion2(1 points):Bayes Net ProbabilitiesQuestion 3(5 points):Join FactorsQuestion4(4 points):EliminateQuestion5(4 points):NormalizeQuestion 6(4 points):Variable EliminationQuesti

weixin_46582817的博客 1674

DELL Precision T7920加装显卡遇到的坑

文章目录DELL Precision T7920加装显卡服务器原有配置介绍选购过程确认型号确认PCIE x16插槽确认电源功率和电源线安装过程电源模组线不够多单装一个3090显卡尺寸问题加装上1080Ti非常重要!官方文档 DELL Precision T7920加装显卡 实验室由于显卡计算能力不够,以及显卡显存不够,请老师花了大价钱购入了两张GeForce 3090显卡。老师赛高!记录一下这次加装显卡过程中学到的一些知识。 服务器原有配置介绍 服务器原有一张1080Ti显卡,一个16核Xeon CPU。

weixin_45520982的博客 1万+

关于MySQL建表对DML的影响【转】

本文来自这里 今天一位同学问到线上曾经碰到过连续建表,导致阻塞普通的insert、update等。不过也没有保留现场。因此有疑问为什么建表会影响DML? 分析          首先这个现象不是在所有场景都会碰到(否则MySQL的用户们早就跳起来了)。 一来建表这个操作本身很快,只涉及到写表定义文件和初始化表空间。中间涉及到redo和undo的操作也很少(这里只讨论InnoDB表)...

weixin_34232744的博客 129

【推荐100个unity插件】皮毛shader着色器 实现可以用动的毛茸茸毛绒绒效果

Unity内置渲染管线毛发着色器实现 摘要:本文介绍了Unity内置渲染管线下的毛发着色器实现方案。该方案通过多层渲染技术模拟毛发效果,支持基础光照模型(环境光、漫反射和镜面反射),提供毛发长度调节功能。主要包含10个渲染通道,采用逐步增加的FURSTEP参数(0.05-0.55)分层渲染毛发,每层使用相同的着色器代码但不同参数值。该实现仅适用于内置渲染管线,不支持毛发动态效果,代码结构简洁,通过FurHelper.cginc包含核心着色逻辑。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2677

mysql建表影响效率_关于MySQL建表对DML的影响【转】

本文来自这里今天一位同学问到线上曾经碰到过连续建表,导致阻塞普通的insert、update等。不过也没有保留现场。因此有疑问为什么建表会影响DML?分析首先这个现象不是在所有场景都会碰到(否则MySQL的用户们早就跳起来了)。一来建表这个操作本身很快,只涉及到写表定义文件和初始化表空间。中间涉及到redo和undo的操作也很少(这里只讨论InnoDB表)。因此除非碰到磁盘IO响应不了,否则多数情...

weixin_28709649的博客 233

2023年五一数学建模 | 第二十届五一数学建模C题:“双碳”目标下低碳建筑研究

2023年五一数学建模 | 第二十届五一数学建模C题:“双碳”目标下低碳建筑研究

前程算法屋的博客 1380

YOLO26改进策略【卷积层】| CVPR 2024 可变形卷积 v4(DCNv4)无界权重提表达 + 线程合并降冗余,强化模型收敛速度

DCNv4(Deformable Convolution v4)是一种专为广泛视觉应用设计的高效算子,它对DCNv3进行了关键改进,有效解决了DCNv3存在的速度慢和表达能力受限等问题。

Limiiiing的博客 695

WorkBuddy模型按需加载:显存优化的工程实践

大语言模型推理中的显存瓶颈,本质是权重加载策略与实际计算需求不匹配所致。传统全量加载将全部参数驻留GPU,造成严重资源浪费;而按需加载通过分层卸载、动态专家路由等机制,在保持模型精度前提下,实现GPU显存占用下降63.6%。其核心在于将加载时机从启动即加载转向触发即加载,粒度从整模型下沉至子模块与MoE专家,并构建CPU+GPU+SSD三级协同内存体系。该方案特别适用于边缘部署、低成本云服务及多任务共享GPU等资源受限场景,为WorkBuddy类定制化大模型提供了可落地的轻量化推理路径。

weixin_34200628的博客 272

仿真学习系列(二):ADS仿真直观理解方波与频谱分量的关系

在高速电路设计中,我们常常听到一句话:“信号其实不是电压在传输,而是频率在传播。” 这句话看似抽象,却揭示了信号世界的核心本质——任何时域波形,都可以被拆解为一系列不同频率的正弦波。 那么,一个看似简单的方波,究竟由哪些频率成分组成?为什么在示波器上,有的方波上升沿又快又“方”,而有的却“圆润”得多?这些差异背后,隐藏的正是高频分量的力量。 本文将通过使用 Keysight ADS,从零搭建仿真电路,直观地观察方波与其谐波成分之间的关系。

案例文章,高速信号 815

【MySQL基础】章节16:DDL和DML的补充

DDL和DML的补充

云沧同学的博客 478

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Mysql(2)

本文介绍了MySQL中DDL(数据定义语言)和DML(数据操作语言)的基本操作,以及常见的约束类型。主要内容包括: DDL操作:包括库、表、列的创建和修改,如添加列(add)、修改列(change)、删除列(drop)等语法。 DML操作:包括行的增删改操作,如插入数据(insert)、删除数据(delete)、更新数据(update)等语法。 约束类型: 主键约束(primary key):非空且唯一 自增属性(auto_increment):自动累加1 非空约束(not null) 唯一约束(uniqu

2303_76151267的博客 876

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mysql数据库篇——DML数据操纵语言

mysql数据库篇——DML数据操纵语言

持续充电的小周 291

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

拼装sql_这次被问懵了!搞定了这些SQL优化技巧,下次横着走

点击上方蓝色字体,选择“设为星标”回复”666“获取面试宝典SQL 优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊打面试官还是会被吊打呢?有朋友疑问到,SQL 优化真的有这么重要么?如下图所示,SQL 优化在提升系统性能中是:成本最低和优化效果最明显的途径。如果你的团队在 SQL 优化这方面搞得很优秀,对你们整个大型系统可用性...

weixin_39827585的博客 141

MySQL UNIQUE和DISTINCT的区别

MySQL UNIQUE和DISTINCT的区别

2403_86957103的博客 104

MySQL--数据库基础--0406

MySQL的简单认识--什么是数据库-- 基本使用

qq_68741368的博客 455

MySQL索引知识点总结

索引是帮助数据库高效查询数据的数据结构,类比书籍目录,,但会占用存储空间,降低增删改性能。

2501_93786094的博客 379

mysql 建表_138 张图!入门 MySQL

SQL 基础使用MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角SQL,SQL 的全称是Structure Query Language,结构化的查询语言,它是一种针对表关联关系所设计的一门语言,也就是说,学好 MySQL,SQL 是基础和重中之重。SQL 不只是 MySQL 中特有的一门语言,大多数关系型...

weixin_39841709的博客 7331

MySQL基础(DDL、DML、DQL)

我们开发应用程序的时候,程序中的所有数据,最后都需要保存到专业软件中。这些专业的保存数据的软件我们称为数据库。我们学习数据库,并不是学习如何去开发一个数据库软件,我们学习的是如何使用数据库以及数据库中的数据记录的操作。而数据库软件是由第三方公司研发。 SQL是用来存取关系数据库的语言,具有定义、操纵、控制和查询关系型数据库的四方面功能(DDL、DML、DQL、DCL)。所以针对四方面功能,我们学习对数据库的增、删、改、查。

来了点个赞再走... 1万+

【SQL】MySQL基础1:对表的DQL,DML,DDL

介绍MySQL表的基本操作(DQL,DML,DDL),更新中...

backlash321的博客 1950

Mysql数据库登录,建表,建库指令

1.MySQL简介 概念:是现流行的开源、免费的关系型数据库 特点: 免费、开源数据库 小巧、功能齐全 使用便捷 可运行于Windows或Linux操作系统 可适用于中小型甚至部分大型网站应用 2.数据库语言: DQL语言:数据查询语言 D:Data Q:Quevy L:Language 关键字:select DML语言:数据操作语言 D:Data M:manipulation L:language 涉及增删改 DDL语言:数据定义语言 D: D...

AriesLY0411的博客 1366

mysql约束建表规范_MySQL 建库建表规范

1.约束1.PrimaryKey(PK)主键特点:唯一 + 非空,一张表中只能有一个主键约束,一般是一个数字列,最好是无意义的。2.NOT NULL 非空特点:不能为空,建议在MySQL中,业务关键列,尤其是索引列,设置为非空。3.UNIQUE 唯一约束特点:不能有重复值,可以有多个,一般像是手机号,身份证号4.unsigned 数字列无符号(全是正数)特点:必须要加在数字列后,...

weixin_30607125的博客 271
上一篇: 关于session variables 和 global variables
下一篇: MySQL优化器中一个Count和覆盖索引的问题
iteye_621
博客等级 码龄8年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值