我有一个问题,我有很多数据要绘制图表。该图表的设置最初只绘制了少量点,但您可以“放大”以获取特定日期范围内的更多点(这是通过向 Java 后端发出 AJAX 请求来实现的)
我想到了两种方法,并且希望得到一些关于哪种方法更有效的反馈:
- 只需针对相关日期范围内的每个请求执行新的 SQL 查询即可 或
- 将所有日期范围的所有记录预加载到我的 Java 框架内的 ORM 类中。将它们添加到二叉搜索树中。然后当用户发出请求时,只需执行二分搜索即可。
我假设数据库已经具有某种基于树的索引,但是使用第二种方法我可以避免重复数据库调用的开销。感谢您的帮助!
最佳答案
最好的查看方法是分析这两种解决方案,但我的直觉是您的 DBMS 会比您更快地完成此操作。 DBMS 专门设计用于非常快速地处理此类查询。他们的优化器可能比您在 Java 中实现的优化器更好。
假设您的数据库已正确配置和优化,可以处理您所描述的查询。我怀疑重复 DB 调用的成本不足以抵消 DBMS 的性能。
让 DMBS 执行此搜索也更干净,因为它最大限度地减少了您需要自己编写的代码。
同样,确定的最佳方法是快速制作解决方案和配置文件的原型(prototype)。
关于java - 多个sql查询与Java二分查找的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098622/