mysql 在大数据量的情况下 如何添加新的字段
暴风雨之后,不仅没看到彩虹,还感冒了!
在这种大数量量的作用下,直接添加,肯定会有造成锁表的,mysql挂掉的风险
方法1:
一种方案是新建一个空表,在新建的表里面里面插入字段,然后把旧表里面的输入插入到这个空表里面来,等数据迁移完成这之后,再更改表名即可。
注意:实际操作中,会出现卡死的现象,经过仔细分析,我们会发现,新的表除了拷贝了之前表的字段,同时也获取了原表里面的主键和索引,我们知道在有索引和主键的情况下,数据在写入的时候除了写入字段的值以为还会在磁盘上额外写入字段的索引信息,对于3000w条数据,这一项工作同样是一笔巨大的开销,所以就出现了卡死的现象。
方法2:
我们在方案1的基础上,创建表表删除主键和索引先,然后在插入数据,最后补上对应的索引。
还有其他的细节
1、比如需要停服更新
2、是否在执行的过程中有插入,更新操作等