Java处理大量数据

我有一个需要显示大量数据的Java应用程序(大约100万个数据点)。 数据并非都需要同时显示,而是仅在用户请求时显示。 该应用程序是一个桌面应用程序,不与应用程序服务器一起运行或命中任何集中式数据库。

我的想法是在机器上运行数据库并在那里加载数据。 数据库将在大多数时间只读取,因此我应该能够索引以帮助优化查询。 如果我在本地系统上运行,我不确定是否应该尝试实现一些缓存(我不确定查询运行的速度有多快,我目前正在研究它们)。

这是解决问题的合理方法还是会有更好的方法?

谢谢,杰夫

显示和数据是两回事。

您没有提供任何有关的详细信息,但可以在后台生成显示,一次一个数据地引入数据,然后在准备好时显示。 很多东西都可能导致内存问题,所以你需要小心。 数据库将有助于持久化,但它无法帮助您将10磅的数据输入到5磅的内存包中。

更新:如果个人一次只读取几个点,并且显示不是问题,那么我会说如果你正确地索引表,任何数据库都能够处理它。 对于有能力的数据库来说,一百万行并不是很多。

嵌入式数据库看似合理 查看JavaDB / Derby或H2或HSQLDB 。

带有java包装器的 Sqlite也很好。

这真的取决于你的数据。 多个实例请求数据吗? 如果没有,绝对值得寻找一个简单的SQLite数据库作为存储。 它只是文件系统上的单个文件。 无需设置服务器。

那么,取决于数据大小。 例如,1百万个整数不是那么多,但是1百万个数据结构/类或其他任何东西,比方说,1000字节大小是多少。

对于小数据:将它们保存在内存中对于大数据:我认为使用数据库会很好。

只是我的观点 :)

编辑:

当然,这还取决于你想要达到的速度。 如果你确实需要高速且数据很大,你也可以将其中的一些缓存在内存中,剩下的就放在数据库中。