MySQL字段长度修改 锁表情况分析

news2025/1/14 18:04:33

前言

最近发现有一个780w左右的表的某个字段长度设置不合理,导致数据无法插入 , 于是计划修改长度。 担心会锁表阻塞业务所以选择晚上执行修改, 结果在晚上发现这个修改是秒生效, 并没有阻塞数据库,于是分析下原因。

字段content修改前类型是varchar(255) 字符编码是utf8mb4。 修改成varchar(2048)

MySQL的行存储格式

mysql的每行数据的默认存储格式是dynamic, 但是dynamic格式和compact格式差异不大, 本文以 compact的行格式说明问题, compact的行格式如下:
在这里插入图片描述
头部有一个变长字段列表, 其中存储的是这一行中变长字段的长度。

比如我content字段之前是varchar(255). 而utf8mb4每个汉字4个字节表示, content存满后的长度是1020字节, 在头部就需要存储一个数字1020, 所以头部中有两个字节是用来表示content的长度的。

现在我把长度改成了varchar(2048), 修改后存满需要8192字节, 还是只需要两个字节来表示这个长度, 因此每一行记录的变长字段部分不需要修改。

总结

  1. mysql的compact的行格式中每行头部会开辟对应的空间来存储变长字段长度值。
  2. 如果修改变长字段的长度 导致行头部已有的空间不够表达字段长度了, 就会修改每一行的头部
  3. 在修改每一行的头部的时候就会锁住全表。
  4. 如果修改的字段的长度, 头部现有的空间依旧可以满足变长字段长度的表示需要, 则不会修改每一行数据, 就不会锁表了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国数据治理认证DAMA-CDGA/CDGP(线上班)招生简章

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

爆款短视频速成技巧之视频发布篇,短视频介绍文案怎么写(下)

前面几篇我们讨论了短视频定位,怎么写文案脚本,怎么拍摄以及后期剪辑,至此我们一个优质的短视频已经制作完成,今天我们就聊一下下一个环节:短视频的发布 剪辑好的优质短视频怎么发布才能成为爆款视频?短视…

vue实现修改title提示框-默认样式【两种方式】

博主介绍 📢点击下列内容可跳转对应的界面,查看更多精彩内容! 🍎主页:水香木鱼 🍍专栏:后台管理系统 文章目录 简介:这是一篇有关【vue实现修改title提示框-默认样式【两种方式】】…

RV1126笔记六:人脸识别方案<四>

若该文为原创文章,转载请注明原文出处。 一、介绍 人脸识别方案设计逻辑流程图,方案代码分为分为三个业务流程,主体代码负责抓取、合成图像,算法代码负责人脸识别功能。通过摄像头实时采集数据,识别人脸,并提取人脸特征,把特征值和数据库对比后,把名字合合到图像上,…

Spring Boot全局异常处理器(原理及使用详解)

目录 1 什么是全局异常处理器 2 为什么需要全局异常 3 原理和目标 4 ControllerAdvice注解 4.1 Advice(通知) 4.2 ControllerAdvice结合方法型注解ExceptionHandler,用于捕获Controller中抛出的指定类型的异常,从而达到全局不同类型的异…

【Unity】使用 System.Windows.Forms 的问题

因为最近开发需要用到使用 Windows 自带的窗口打开、文件选择等功能,然后兜兜转转需要使用 System.Windows.Forms 这个库。这个库在 WinForm 里是很常见的,但是要在 Unity 里使用,并打包出来还是有些坑的。 我这里使用的 Unity 版本&#xf…

MATLAB算法实战应用案例精讲-【连接分析】PageRank

前言 拉里佩奇 Larry Page和谢尔盖布林 Sergey Brin于1996年在斯坦福大学开发了PageRank算法,此后于1998年基于该算法,共同创立了Google公司。PageRank这个名字一语双关,既源于其算法创始人Larry Page,也源于网页 Web Page。 PageRank算法将网页按重要性进行排序。有了这…

搭建nacos

一、nacos的介绍 开启nacos的作用: 在项目开发过程中我们可以把服务提供者的网络地址(IP,端口号)等编码到代码中, 这种做法存在许多问题: 一旦服务提供者地址变化,就需要手工修改代码一旦是…

Wireshark TS | Packet Challenge 之 DNS 案例分析

前言 来自于 Sharkfest Packet Challenge 中的一个数据包案例,Sharkfest 是 Wireshark 官方组织的一年一度的大会,致力于在 Wireshark 开发人员和用户社区之间分享知识、经验和最佳实践。印象中早期是一年一次,近几年发展成一年两次&#xf…

艾美捷超氧化物歧化酶检测试剂盒参数说明

超氧化物歧化酶是催化超氧化物离子O2-的歧化反应2O2-+2H →O2+H2O2的酶.EC1.15.1.1.是金属酶,已知在金属酶中有真核生物细胞质的深绿色Cu-Zn酶(分子量约3万)、线粒体、细菌红紫色的M…

Debian系列-在新的GNOME下无法启动Qt

Debian系列-在新的GNOME下无法启动Qt 文章目录Debian系列-在新的GNOME下无法启动Qt摘要启动Qt 报错 No protocol specified解决方法1 打开一个新的终端2 echo $DISPLAY3 export DISPLAY更新一下关键字: Debian、 Qt、 xcb、 No protocol specified、 关键字5摘要 …

转行做程序员,哪种编程语言既高薪又适合你?

“你为什么学习这门编程语言”?大多人当初面对选择这个问题的时候,都只是单纯的“听朋友说”或是百度看到了表面,或者是一拍脑门决定的。其实并不了解这个编程语言的特性和市场现状以及这个语言是否适合自己。 这类的情况还是算是好的&#x…

并发编程学习(四):wait()、nitify()

1、wait、notify原理 Owner 线程发现条件不满足,调用wait()方法,即可进入WaitSet,变为WAITING 状态。BLOCKED和WAITING的线程都处于阻塞状态,不占用CPU时间片。BLOCKED线程会在Owner线程释放锁时唤醒。WAITING线程会在Owner线程调…

【数据库】简答题知识点

数据库系统的结构 数据库系统的逻辑结构可以分为用户级、概念级和物理级三个层次。每个层次的数据库都有自身对数据进行逻辑描述的模式,分另称为外模式、概念模式和内模式。 外模式:是与和具体的应用或者项目有关的逻辑表示,用户可以操作的…

【Proteus仿真】【51单片机】自动浇花灌溉系统设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、DS18B20、PCF8591 ADC、土壤湿度传感器、水位传感器、蜂鸣器模块等。 系统运行后,LCD1602显示传感器检测的温度、湿…

【Linux操作系统】多线程(一)

文章目录1. 线程概念2. 线程控制2.1 创建线程2.2 线程ID2.3 线程等待2.4 线程终止2.5 线程分离3. 线程同互斥与同步3.1 互斥量3.2 死锁3.3 同步-条件变量3.4 生产者消费者模型3.5 POSIX信号量3.6 基于环形队列的生产消费者模型1. 线程概念 线程:是在进程内部运行的…

解决资源消耗,top的运用记录

第一条命令uptime load average 后面的三个数字,分别代表1分钟、5分钟和15分钟内机器的平均负载 使用top命令解决负载问题 Cpu(s)这一行提供了CPU运行情况信息 这些缩写分别代表了不同含义 (1)us:用户CPU时间 运行非优雅的用户进程所占CPU时间的百…

离线下载NLTK依赖包([WinError 10061] 由于目标计算机积极拒绝,无法连接)的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

房产管理系统CAD图形管理应用有哪些?

数图互通房产管理 数图互通房产管理系统建设涵盖学校所有房屋资源管理业务以及CAD图纸的管理,对不同类型的房屋实现相应的业务子系统,实现完善、高效、可溯的房屋资源业务管理,保证数据的完整性、一致性和精确性,及业务的。 通过…

向内而生 向远而行 | 希尔贝壳荣获“2022年度最具投资价值创新企业”奖

12月22日,以“向内而生 向远而行”为主题的2022年度猎云网创投奖项评选正式落下帷幕,各项榜单评选结果正式发布。希尔贝壳凭借先进的技术创新能力获评“2022年度最具投资价值创新企业”奖。 获奖理由 北京希尔贝壳科技有限公司成立于2017年,…