我是靠谱客的博主 欣慰世界,最近开发中收集的这篇文章主要介绍关于MySQL大数据量,依据外键进行数据更新的操作。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景介绍

存在业务主表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大数据量,依据外键进行数据更新的操作。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部