MySQL群集中的批量插入和更新

问题描述 投票:0回答:1

目前我们正在使用Mysql Cluster和Mybaits。当我们对特定表进行批量插入或更新时,花费的时间超过120秒,但预期低于30秒。

对于示例10k记录,首先我们尝试更新10k行,花费超过180到240分钟。所以我们转向一些解决方案分成4k,4k,2k这样的批次,这也需要120到180分钟。最后我们将记录吐出到2k,2k,....花了90到120秒,但CPU使用率却很高。

该表没有任何关系。

对于这些情况的任何解决方案,我们应该转移到数据库级别的nosql或优化。

nosql mysql-cluster
1个回答
0
投票

当避免网络往返时,群集在批处理时非常有效。但你的插入声音非常慢。即使不使用批处理的串行插入也应该快得多。

当我将20k批处理记录插入群集表时,我的笔记本电脑上需要大约0.18秒。显然取决于架构和数据量。

确保您没有使用例如每条记录后自动提交。也用

INSERT ... VALUES(),(),()...键入批量插入

而不是

INSERT ... VALUES()INSERT ... VALUES()

您还可以根据要在一个事务中插入的数据量来增加ndb-batch-size。

有关您的设置,如何插入,是否有blob以及哪些架构和数据的详细信息将有助于更具体地回答。

© www.soinside.com 2019 - 2024. All rights reserved.