【发布时间】:2021-01-29 08:12:00
【问题描述】:
我有两个巨大的 tsv 文件(1000 万条记录),其中一个 tsv 文件具有属性 id、name、age 和其他属性 id、email 和 phno。 我尝试读取第一个文件并将记录插入到 Person 表中,然后读取第二个文件并更新 Person 表。这种方法需要时间,因为首先在表中插入 1000 万条记录,然后对其进行更新。有没有其他方法可以加快这个过程? PS第二个tsv文件中没有一些ID,所以我无法合并它们。
【问题讨论】:
-
欢迎来到 SO。我认为最终插入大量数据需要时间。您可能希望将负载分布在连接到数据库的多个客户端上。但是我怀疑您需要查看您的 JDBC 驱动程序以及可以在那里配置的内容。可能有帮助的一件事是使用原始 JDBC 而不是 JPA/Hibernate,因为您希望只使用插入。最后,与其猜测瓶颈在哪里运行分析器,您可能会惊讶于在哪里可以获得性能提升。
-
一个答案详细介绍了使用 LOAD DATA 来加载第一个大文件。请进一步解释第二个文件。它是关于同一个文件吗?你真的是在“更新”还是“替换”? “更新”的标准是什么?关键是可能 SQL 会比 JDBC 快得多。