MySQL中大数据表增加字段的实现思路
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
前言 增加字段相信大家应该都不陌生,随手就可以写出来,给 MySQL 一张表加字段执行如下 sql 就可以了: ALTER TABLE tbl_tpl ADD title(255) DEFAULT '' COMMENT '标题' AFTER id; 但是线上的一张表如果数据量很大呢,执行加字段操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了。 那么,给 MySQL 大表加字段的思路如下: ① 创建一个临时的新表,首先复制旧表的结构(包含索引) create table new_table like old_table; ② 给新表加上新增的字段 ③ 把旧表的 在MySQL中,对大数据表进行字段添加是一项需要注意操作流程的任务,因为直接使用`ALTER TABLE`语句可能会导致长时间的表锁定,影响线上服务的稳定性。以下是一种常见的安全且尽可能减少数据丢失的风险的策略: 1. **创建新表并复制结构**: 创建一个新的临时表,其结构与原表相同,包括所有索引。可以使用`CREATE TABLE LIKE`语句来完成: ```sql CREATE TABLE new_table LIKE old_table; ``` 2. **添加新字段**: 在新表中添加所需的字段,例如: ```sql ALTER TABLE new_table ADD title VARCHAR(255) DEFAULT '' COMMENT '标题' AFTER id; ``` 3. **复制数据**: 使用`INSERT INTO SELECT`语句将旧表的数据复制到新表中,确保涵盖所有字段,但不包括新添加的字段: ```sql INSERT INTO new_table (field1, field2, ...) SELECT field1, field2, ... FROM old_table; ``` 4. **处理新数据**: 如果在数据迁移过程中有新的数据写入旧表,可以利用记录数据写入时间的字段来识别这些数据,并将它们导入新表。这可能需要多次执行上述数据复制步骤,直到新旧表之间的数据差异极小。 5. **替换旧表**: 在确保新表数据完整后,删除旧表,并将新表重命名为旧表的名称,完成替换: ```sql DROP TABLE old_table; RENAME TABLE new_table TO old_table; ``` 然而,对于非常大的数据表,这种方法可能仍然存在数据丢失的风险,且操作期间服务可能会短暂中断。在这种情况下,可以考虑以下两种替代方法: 1. **在从库执行并切换主从**: 可以在MySQL的从库上执行上述操作,完成后切换主从关系,使得主库变为新表结构。这样,服务中断的时间仅限于切换过程。 2. **使用在线更改字段工具**: 市场上有一些第三方工具,如Percona Toolkit或pt-online-schema-change,这些工具设计用于在线修改表结构,可以在不锁定表的情况下完成字段添加。 对于数据量不是特别大的表(例如,十几万条记录),直接使用`ALTER TABLE`通常是可行的。但为了确保数据完整性,特别是在大数据场景下,应尽可能选择低峰时段进行操作,或者采用上述的无损策略。 总结来说,MySQL中对大数据表添加字段需要谨慎操作,通过创建新表、复制数据和替换旧表的方式可以降低风险。此外,根据实际情况选择在从库操作或使用专门工具也是保证服务稳定的重要手段。
- 粉丝: 5
- 资源: 961
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 联合建模代码,相位计算代码,电场导出画图代码,以超透镜为案例有讲解视频,视频讲解,代码,文档,透镜,有联合建模代码,相位计算代码
- 基于FasterRCNN目标检测的缺陷检测算法 数据集包含五类别(具体如图所示) 共计1800张图 包含VOC格式数据集+Fas
- 基于 VS 的UDS BOOTLOADER刷写上位机, 1、支持ISO15765通信; 2、支持ZLG USBCAN-2E-U
- 基于hightech 编译器英飞凌tc2xx tc275 tc277 tc297 tc234系列uds bootloader下位
- Matlab雷达信号处理 1.雷达威力图仿真 模糊函数仿真 2.恒虚警检测(CFAR) 3.单脉冲测角 4.线性调频(L
- 永磁同步电机辨识初始电机参数模型,离线辨识模型,还有辨识转子磁链的模型一并打包
- 卡尔曼滤波粒子滤波移动物体追踪复现 来源于国外某课程的学习报告资料,含英语报告PDF和完整的MATLAB程序及用于测试的视频文件
- 基于Yolov5模型进行水稻病虫害目标检测整个项目(包含最近一次训练结果)
- 其四相开关磁阻电机Maxwell+Simplorer联合仿真性能及其波形 资料为模型文件,具有可复制性
- netinstall-6.49.5刷机救砖工具mikrotik
评论10