varchar 字段扩展问题

news2024/11/19 16:46:46

背景

近期接到一个产品需求,由于上游业务字段扩大了字段,下游的字段也得跟着调整扩大,这就涉及几十张大表,十几亿行数据的变更。

如果按照传统方式 onlie-ddl 借用第三方工具也得三四天分批跑,看了看MySQL官网,感觉应该会有更快的方式。

SQL变更

这里原来是 varchar(64)的,需要扩展到 varchar(255)
ALTER TABLE `test`.`tb1`
MODIFY COLUMN `product_name` varchar(255)  NULL DEFAULT NULL COMMENT '商品简称' AFTER `product_code`;

规则:

UTF8MB4的规则下:
规则1:如果 varchar(0-64) 以内的增长是可以秒级扩展的
规则2:如果是从 < 64 的长度扩展到 >64 的长度,则不能秒级扩展
规则3:如果是 >64 的长度扩展到 比原子段更长 的长度,则可以秒级扩展

原理:

如果是从 < 64 的长度扩展到 >64 的长度,则不能秒级扩展,因为改变了数据库的存储结构
由于 VARCHAR 字符类型在字节长度为 1 时可存储的字符为 0~255。当前字符集类型为 UTF8MB4,由于 UTF8MB4 为四字节编码字符集,即一个字节长度可存储 63.75(255/4)个字符,所以当我们将 VARCHAR(63) 修改为 VARCHAR(64) 时,需要增加一个字节去进行数据的存储,就要通过建立临时表的方式去完成本次长度扩容,故需要花费大量时间。

遇到问题

但是总是有些表不按上面的规则来,也就是说 比如从 100 扩展到 255 ,也不是秒级扩展的,这可怎么办,需要先对表做下整理,才能秒级扩展,也就是:
alter table tb1 engine=inondb; 
​
所以定期对大表做整理还是很有必要的。

官网手册:

MySQL :: MySQL 5.7 参考手册 :: 11.7 数据类型存储要求

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

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

相关文章

0605_C++3

练习1&#xff1a; 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数 #include <iostream>using namespace std; …

重学java 65.IO流 缓冲流

I am not afraid tomorrow for I have seen yesterday and love today —— 24.6.5 一、字节缓冲流 1.字节缓冲流的意义 之前所写的FileOutputstream、FileInputstream、FileReader、Filewriter这都叫做基本流,其中FileInputstream和FieOutputstream的读写方法都是本地方法(方…

解锁ArrayBlockingQueue奥秘:深入源码的精彩之旅

1.简介 ArrayBlockingQueue 是 BlockingQueue 接口的一个实现类&#xff0c;它基于数组实现了一个有界阻塞队列。创建 ArrayBlockingQueue 实例时需要指定队列的容量&#xff0c;队列的大小是固定的&#xff0c;无法动态增长。 主要特点包括&#xff1a; 有界性&#xff1a;A…

AI大模型+产品经理:打造智能产品的黄金组合

前言 当我们谈论AI大模型与产品经理的结合&#xff0c;不仅仅是技术与创意的碰撞&#xff0c;更是对未来智能生活的期待。想象一下&#xff0c;当产品的灵魂被注入智能的血液&#xff0c;它们将成为我们生活中不可或缺的伙伴。 我们不仅仅是要探索AI大模型的深层技术&#xf…

泛微开发修炼之旅--07通过后端代码实现创建并发送待办、源码及示例

文章链接&#xff1a;泛微开发修炼之旅--07通过后端代码实现创建并发送待办、源码及示例

云原生架构案例分析_5.某体育用品公司云原生架构的业务中台构建

1.背景和挑战 某体育用品公司作为中国领先的体育用品企业之一&#xff0c;在2016年&#xff0c;某体育用品公司启动集团第三次战略升级&#xff0c;打造以消费者体验为核心的“3”&#xff08;“互联网”、“体育”和“产品”&#xff09;的战略目标&#xff0c;积极拥抱云计算…

告别拥堵:SpringBoot+消息队列打造你的专属交通指挥家!

随着5G和物联网技术的飞速发展&#xff0c;系统的智能化已成为不可逆转的趋势。带你一窥未来&#xff0c;探索如何通过SpringBoot和消息队列技术的结合&#xff0c;开启智能系统的新纪元。从事件驱动架构的实现&#xff0c;到异步消息处理的最佳实践&#xff0c;再到集成主流消…

iOS——类与对象底层探索

类和对象的本质 当我们使用OC创建一个testClass类并在main函数创建它的实例对象的时候&#xff0c;OC的底层到底是什么样的呢&#xff1f; 首先&#xff0c;我们要了解OC对象的底层结构&#xff0c;那么我们就得知道&#xff1a;OC本质底层实现转化其实都是C/C代码。 使用下面…

【scikit-learn010】sklearn算法模型清单实战及经验总结(已更新)

1.一直以来想写下基于scikit-learn训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下scikit-learn框架模型算法包相关技术点及经验。 3.欢迎批评指正,欢迎互三,跪谢一键…

【重磅丨教育设备】推动大规模设备更新和消费品以旧换新行动方案

近日&#xff0c;国务院印发《推动大规模设备更新和消费品以旧换新行动方案》&#xff08;以下简称《行动方案》&#xff09;。《行动方案》提出&#xff1a;实施设备更新行动。提升教育文旅医疗设备水平&#xff0c;推动符合条件的高校、职业院校&#xff08;含技工院校&#…

数据资产入表-数据治理-标签设计标准

前情提要&#xff1a;数据价值管理是指通过一系列管理策略和技术手段&#xff0c;帮助企业把庞大的、无序的、低价值的数据资源转变为高价值密度的数据资产的过程&#xff0c;即数据治理和价值变现。上一讲介绍了数据清洗标准设计的基本逻辑和思路。 上一讲介绍了其他的通用标…

JVM类加载机制详解(JDK源码级别)

提示&#xff1a;从JDK源码级别彻底剖析JVM类加载机制、双亲委派机制、全盘负责委托机制、打破双亲委派机制的程序、Tomcat打破双亲委派机制、tomcat自定义类加载器详解、tomcat的几个主要类加载器、手写tomcat类加载器 文章目录 前言一、loadClass的类加载大概有如下步骤二、j…

centos8stream 编译安装 php-rabbit-mq模块

官方GitHub&#xff1a;https://github.com/php-amqp/php-amqp 环境依赖安装 dnf install cmake make -y 1.安装rabbitmq-c cd /usr/local/src/ wget https://github.com/alanxz/rabbitmq-c/archive/refs/tags/v0.14.0.tar.gz tar xvf v0.14.0.tar.gz cd rabbitmq-c-0.14.0/…

MYSQL数据库细节详细分析

MYSQL数据库的数据类型(一般只需要用到这些) 整型类型&#xff1a;用于存储整数值&#xff0c;可以选择不同的大小范围来适应特定的整数值。 TINYINTSMALLINTMEDIUMINTINTBIGINT 浮点型类型&#xff1a;用于存储带有小数部分的数值&#xff0c;提供了单精度&#xff08;FLOA…

调用上传文件接口出现格式错误

一、造成这种错误的可能有很多 1.检查一下传递格式 2.检查一下接口要求的格式 二、举个例子 这两个有什么区别&#xff1f; 那就是json、和form-data&#xff0c;一定要看仔细接口 如果还是按照json的方式去传就会报错 三、更改header里Content-Type的类型 json等的heade…

iOS18 新变化提前了解,除了AI还有这些变化

iOS 18即将在不久的将来与广大iPhone用户见面&#xff0c;这次更新被普遍认为是苹果历史上最重要的软件更新之一。据多方报道和泄露的消息&#xff0c;iOS 18将带来一系列全新的功能和改进&#xff0c;包括在人工智能领域的重大突破、全新的设计元素以及增强的性能和安全性。现…

【成都信息工程大学】只考程序设计!成都信息工程大学计算机考研考情分析!

成都信息工程大学&#xff08;Chengdu University of Information Technology&#xff09;&#xff0c;简称“成信大”&#xff0c;由中国气象局和四川省人民政府共建&#xff0c;入选中国首批“卓越工程师教育培养计划”、“2011计划”、“中西部高校基础能力建设工程”、四川…

SASAM软件架构静态分析法-系统架构师(六)

1、体系结构权衡分析法&#xff08;Architecture Tradeoff Analysis Method ATAM&#xff09;包含四个主要活动领域&#xff0c;分别是 场景和需求的收集、体系结构视图和场景的实现、&#xff08;&#xff09;、折中。基于场景的架构分析方法&#xff08;Scenarios-based Arch…

React常见的一些坑

文章目录 两个基础知识1. react的更新问题, react更新会重新执行react函数组件方法本身,并且子组件也会一起更新2. useCallback和useMemo滥用useCallback和useMemo要解决什么3. react的state有个经典的闭包,导致拿不到最新数据的问题.常见于useEffect, useMemo, useCallback4. …

Crosslink-NX器件应用连载(11): 图像(数据)远程传输

作者&#xff1a;Hello&#xff0c;Panda 大家下午好&#xff0c;晚上好。这里分享一个Lattice Crosslink-NX器件实现图像或数据&#xff08;卫星数据、雷达数据、ToF传感器数据等&#xff09;远程传输的案例&#xff08;因为所描述的内容颇杂&#xff0c;晒图不好晒&#xff…