我的应用程序需要在文本文件中使用最大5 GB的数据。我无法将所有这些数据加载到RAM中,因为它太大了。
数据存储就像一个表,500万条记录(行)和40列,每列包含将在内存中转换为字符串,整数或双精度的文本。
我已经尝试在内存中缓存10到100 MB的数据,并在我需要外部数据时从文件重新加载,但这太慢了!当我运行计算因为我可以从表中的任何行随机跳转时,它将不断地需要打开文件,读取和关闭。
我需要快速的东西,我正在考虑使用某种DB。我知道像这样的大数据计算可能需要一段时间,这很好。如果我使用数据库,则需要在启动桌面应用程序时进行设置,而不需要安装某种服务器组件。
任何提示?感谢
答案 0 :(得分:2)
您可以使用嵌入式数据库,您可以在此处找到对比:Java Embedded Databases Comparison。
或者,根据您的使用情况,您甚至可以尝试使用Lucene这是一个全文搜索引擎。
答案 1 :(得分:2)
我认为你需要澄清一些事情:
目前,我认为有两种方法可供进一步调查: