gpt4 book ai didi

java - 并发多线程批量向Mysql插入/更新数据

转载 作者:行者123 更新时间:2023-11-29 12:30:33 33 4
gpt4 key购买 nike

我的多线程(大约 10 个线程)应用程序的多个实例正在不同的计算机(大约 10 个计算机)上运行。因此,该应用程序总共有 100 个线程同时处于 Activity 状态。每个线程都会生成 4 个输出集,每个输出集包含 1k-5k 行。这些集合中的每一个都被推送到单个 Mysql 机器、相同的数据库、相同的表(插入或更新操作)。因此有 4 个表消耗每个线程生成的 4 个集合。我使用 mybatis 作为 ORM。这些线程可能会消耗大量时间将输出写入数据库而不是处理请求。在这种情况下如何优化数据库写入?1.使用mybatis的批处理2. 将数据写入将由单个消费者线程拾取并写入数据库的文件?3.将每个数据集写入不同的文件并使用4个消费者线程从同一组中选取必须推送到同一个表的数据,以便最小化锁定?如果可能的话请建议其他更好的方法?

最佳答案

数据库是为了处理并发性而设计的。不确定 mybatis 到底带来了什么(一般来说不是 ORM 的忠实粉丝),但如果它正在使用它,这会让你开始考虑像中间文件和单线程更新这样的 hack,你可能最好还是直接复制它输出并使用纯 jdbc 写入数据库,如果您充分批处理更新,那么处理您的用例应该没有问题。

关于java - 并发多线程批量向Mysql插入/更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604235/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com