概述
背景介绍:
存在业务主表a, 包含大量字段 a_1,a_2,a_3... 。
存在从表b,包含外键(主表主键 a_1) 和业务属性 a_3,a_6,a_9。
由于从表b需要增加业务主表的a_11。将表b增加一列 b_11,其列内容需要从主表a_11中更新。
增加业务主表的a_12。将表b增加一列 b_12,其列内容需要从主表a_12中更新。
...
表a,b都是百万级别的数据。
解决方案有:
1、使用update 语句
update b set b_11 = (select a_11 from a where a.a_1 = b.b_1), b_12 = (select a_12 from a where a.a_1 = b.b_1 )
2、使用存储过程
通过 select ... from a 的游标,将值赋给变量v_N
循环更新b表
update b set b_11 = v_11 ,b_12 = v_12 where b_1 = v_1;
3、创建b的结构表 b2(高效)
insert into b2 select b.b_1,b.b_2,a.a_1... from a join b where b_1 = a_1
然后将b表改名为b3, b2改名为b。
结论:
解决方案3会非常高效,因为MySQL对于大数据量的记录,更新操作会非常缓慢。对于大数据量的表,更新操作一般采用先删除,后添加新记录的方式来实现更新操作。
解决方案3有效的利用,新建代替更新的操作,实现效率上的提升。
最后
以上就是欣慰世界为你收集整理的关于MySQL大数据量,依据外键进行数据更新的操作。的全部内容,希望文章能够帮你解决关于MySQL大数据量,依据外键进行数据更新的操作。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复