我有一个需要显示大量数据的Java应用程序(大约100万个数据点)。数据并非都需要同时显示,而是仅在用户请求时显示。该应用程序是一个桌面应用程序,没有运行应用程序服务器或访问任何集中式数据库。
我的想法是在机器上运行数据库并在那里加载数据。 DB大部分时间都是只读的,所以我应该能够索引以帮助优化查询。如果我在本地系统上运行,我不确定是否应该尝试实现一些缓存(我不确定查询运行的速度有多快,我正在研究它们。)
这是解决问题的合理方式还是会有更好的方法?
谢谢, 杰夫
答案 0 :(得分:2)
显示和数据是两回事。
您不会提供任何有关的详细信息,但可以在后台生成显示,一次一个数据地引入数据,然后在准备就绪时显示。很多东西都可能导致内存问题,所以你需要小心。数据库将有助于持久化,但它不会帮助您将10磅数据存入您的5磅记忆袋。
更新:如果个人一次只读取几个点,并且显示不是问题,那么我会说如果你正确地索引表,任何数据库都能够处理它。对于有能力的数据库来说,一百万行并不是很多。
答案 1 :(得分:2)
答案 2 :(得分:1)
这实际上取决于您的数据。多个实例请求数据吗?如果没有,绝对值得寻找一个简单的SQLite数据库作为存储。它只是文件系统上的单个文件。无需设置服务器。
答案 3 :(得分:0)
嗯,取决于数据大小。例如,1百万个整数不是那么多,但是1百万个数据结构/类或其他任何东西,比方说,1000字节的大小是多少。
对于小数据:将它们保存在内存中 对于大数据:我认为使用数据库会很好。
我的意见:))
编辑:
当然,这也取决于你想要达到的速度。如果你真的需要高速且数据很大,你也可以将其中一些缓存在内存中,剩下的就留在数据库中。