Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySql数据表增加字段很慢

MySql中数据表增加字段很慢问题及解决

作者:狮子君的石榴

这篇文章主要介绍了MySql中数据表增加字段很慢问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySql数据表增加字段很慢

由于数据库表中有大量数据,导致给表添加字段就会很慢。

所以,对于数据量很大的表,需要添加所有或者修改字段的做法是如下:

1.先创建一张一样的表

create table new_tb like tb_old;

2.修改创建表的字段

alter table new_tb add COLUMN new_column varchar(32) DEFAULT null;

3.原始数据插入到新的数据表中

insert into new_tb (字段) select 字段 from tb_old;

这里需要注意下,你的insert字段和你查询出来的字段一致,对应顺序也是需要一致的,如果你只是修改字段的属性,或者添加了索引之类的,字段数量没用变话,那么直接这样写

insert into new_tb select * from tb_old;

4.删除原来的数据表,并且重新命名新的数据表:

drop table tb_old;
alter table new_tb rename to tb_old;

MySql大表加字段问题

场景

现在 有个数据量大概40亿的数据,存在10个库,总计80张表上面,每个表大概5000万的数据量,

这个表通过一个MQ接口不断地接收数据,每天大概新增或更新数据量是几十万。

现在,需要在在这个表上加个新字段X,而且都有初始值,都存储在对方系统的数据库里。而他们这个新的字段一直就有。只是我方系统一直以来没有接这个字段。

注意:加字段期间不能影响原有的查这张表的业务的使用。

问:如何新增。

首先,肯定不能在表上面直接加字段,数据量太大,直接加字段,sql一夜都跑不完。而且会影响查询业务的使用

方案如下

感悟:

本来加一个字段不算太大的事,可是因为数据量大,又要保证可用性,所以还是需要一套方案来做这个事情。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文