gpt4 book ai didi

Java:存储和读取10亿条数据记录的最佳方法

转载 作者:行者123 更新时间:2023-11-30 04:04:34 25 4
gpt4 key购买 nike

我正在寻找最快的方法,在 Java 中,存储约 10 亿条记录,每条记录约 250 字节(存储仅发生一次),然后能够以非顺序顺序多次读取它。

源记录正在生成为简单的 java 值对象,我想以相同的格式读回它们。

目前我最好的猜测是使用快速序列化库(例如 Kryo)将这些对象存储在平面文件中,然后使用 Java FileChannel 进行直接随机访问以读取文件中特定位置的记录(当存储数据时,我将保留在 HashMap 中(也将保存在磁盘上)以及每个记录在文件中的位置,以便我知道在哪里读取它)。

此外,无需优化磁盘空间。我主要关心的是优化读取性能,同时具有合理的写入性能(同样,只会发生一次)。最后精度:虽然记录都是相同类型(相同的 Java 值对象),但它们的大小(以字节为单位)是可变的(例如,它包含字符串)。

还有比我上面提到的更好的方法吗?任何提示或建议将不胜感激!

非常感谢,托马斯

最佳答案

您可以使用 Apache Lucene,它将处理您上面提到的所有事情:)它非常快,您可以比以往更快地搜索结果。Apache Lucene 将对象保存在文件中并为其建立索引。我们已经在几个应用程序中使用了它,而且速度非常快。

关于Java:存储和读取10亿条数据记录的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21073010/

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