在我的应用程序中,我需要将大量数据写入数据库。为了加快速度,我正在考虑实时写入顺序二进制文件,然后将批量插入到数据库中。有不同的日志库可以配置为每 x 秒或 MB 创建一个新文件,但是它们在重负载下会显着降低系统速度,并且它们可以处理字符串消息。
是否有任何用于二进制文件的高性能库?
在我的应用程序中,我需要将大量数据写入数据库。为了加快速度,我正在考虑实时写入顺序二进制文件,然后将批量插入到数据库中。有不同的日志库可以配置为每 x 秒或 MB 创建一个新文件,但是它们在重负载下会显着降低系统速度,并且它们可以处理字符串消息。
是否有任何用于二进制文件的高性能库?
如果我是你,我会研究使用 JDBC 批量插入的可能性。相关方法是PreparedStatement.addBatch()
和Statement.executeBatch()
。
这是一个讨论它们的教程:http: //viralpatel.net/blogs/2012/03/batch-insert-in-java-jdbc.html
根据我的经验(使用 PostgreSQL),它们比单次插入要快得多。很可能它们的速度足以满足您的目的。
Kafka 旨在能够充当一个统一的平台来处理所有实时数据馈送。 https://kafka.apache.org/08/design.html