mysql大量数据更新采用啥样的方式比较好,20w条数据一次更新?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql大量数据更新采用啥样的方式比较好,20w条数据一次更新?相关的知识,希望对你有一定的参考价值。

【问题描述】有20多万条数据需要更新到一个表中表总的数据量是30万条左右,1小时会更新一次,数据表又存在其他查询和更新。所以经常造成更新的时候锁表,数据库卡死的情况。
【思路细节】目前采取的方式是,把表分区成9个,需要更新的部分拆分为5个不同的区,一次更新一个区,每次差不多4万条数据。删除一个分区。然后重建分区。然后插入数据。这样的结果就是这个过程中如果有查询和更新,就会等待和卡死。
目前方案,
alter table 表 drop partition 分区;
ALTER TABLE 表 REORGANIZE PARTITION 分区 INTO (
PARTITION 分区 VALUES LESS THAN (6),
PARTITION 分区2 VALUES LESS THAN (7)
);
insert into 表 (数据) select 数据 from 临时表;

建缓冲区。比如其他类型的高速缓存(redis等)作为中间缓冲层。
数据的查询,更改首先在这个层处理,处理完再更新到对应的数据库。
注意额外增加锁,或者缓存机制防止缓存击穿,雪崩导致系统崩溃。
参考技术A 大批量更新数据mysql批量更新的四种方法 mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞。追问

那用什么方法进行更新比较好呢?

在程序内部文档方面应该采用啥样的编码风格

参考技术A 在程序内部文档方面应该采用的编码风格是:程序内部良好的文档(注释)、数据说明、语句构造、输入输出和效率保障等。以上就是在程序内部文档方面应该采用的编码风格。

以上是关于mysql大量数据更新采用啥样的方式比较好,20w条数据一次更新?的主要内容,如果未能解决你的问题,请参考以下文章

cocos2dx+lua采用纯lua开发休闲类游戏,采用啥样的框架好

在程序内部文档方面应该采用啥样的编码风格

听说python可以写自动办公脚本。那能达到一个啥样的效果呢?或者说在啥样的环境下,会比手动处理更好

好的现代 c 代码是啥样的? [关闭]

mysql表应该添加啥样的索引?

LINUX下用啥样的FTP服务器软件好?如何安装设置?