gpt4 book ai didi

java - JDBC 多线程插入是否可行?

转载 作者:搜寻专家 更新时间:2023-10-31 19:40:57 24 4
gpt4 key购买 nike

我目前正在做一个 Java 项目,我需要准备一个大的(对我来说)mysql 数据库。我必须使用 Jsoup 进行网络抓取并将结果存储到我的数据库中。据我估计,我将插入大约 1,500,000 到 2,000,000 条记录。在我的第一次试用中,我只是使用一个循环来插入这些记录,我花了一个星期的时间来插入大约 1/3 的所需记录,我认为这太慢了。是否可以使这个过程成为多线程的,这样我就可以将我的记录分成 3 组,比如每组 500,000 条记录,然后将它们插入一个数据库(特别是一个表)?

最佳答案

多线程在这里帮不了你。您只需将争用瓶颈从您的应用服务器转移到数据库。

相反,请尝试使用批量插入,它们通常会使这类事情快几个数量级。参见 "3.4 Making Batch Updates" in the JDBC tutorial .

编辑:正如@Jon 评论的那样,您需要将网页的提取与其插入数据库分离,否则整个过程将以最慢的操作速度进行。您可以让多个线程获取网页,将数据添加到队列数据结构,然后让一个线程使用批量插入将队列排空到数据库中。

关于java - JDBC 多线程插入是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9664821/

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