Mysql表数据比较大的情况下修改添加字段的方法

当MySQL表数据量巨大时,直接使用ALTER语句修改字段会导致长时间锁表。本文提供了一种避免锁表的策略:创建临时表,修改临时表结构,再通过RENAME TABLE交换表名。此外,推荐使用数据导入导出工具如Datagrip或IDEA,以CSV格式进行数据迁移,确保数据安全且减少错误。这种方法在大规模数据操作时更为适用。
摘要由CSDN通过智能技术生成

Mysql表数据比较大的情况下修改添加字段的方法

如果一张表在后期的维护中,发现需要加字段以满足当下的需求,但是数据量很大有百万甚至千万级的数据,要如何修改表字段呢。

直接执行使用alter语句肯定是不现实的,这涉及到锁表重建表结构等操作,假设这时候还有其他线程在跑,等一天都改不过来。

这里整理一个比较简单的方法

1、对照要操作的表结构创建一张临时表
CREATE TABLE product_copy LIKE product;
2、将要修改的表结构改在临时表上面
3、导出表product数据,并导入到零时表product_copy
4、使用RENAME语句替换表名
RENAME TABLE product TO product_bak, product_copy TO product;

但是数据量太大的情况下,导出导入也需要一定的时间,而且数据容易出错,这里推荐使用datagrip的导入导出工具,或者idea的数据源插件,最好使用csv文件来导入导出。

1、在表名处右击选择导入数据

在这里插入图片描述

2、在导入界面能清楚的看到字段的对应关系,有问题可以直接调整,所见即所得

在这里插入图片描述

3、如果导出的时候导出了表头,还可以在第一行右击将此行标记为表头,更方便看到数据的对应

在这里插入图片描述

分享到这里就结束了,欢迎大家讨论指正。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值