我有一个非常大的表~90000行,每行包含10列..我需要从数据库中获取一些数据。在最坏的情况下,我需要查询7500行,但通常是大约~4000行行..
每一行都有一个名为“LineNumber”的列,每行~10行具有相同的LineNumber,从1开始... 对于具有相同LineNumber的所有行,我需要从名为RATING的列中获取最低和最高数字。
我可以获得所有这些~4000行,然后传递这些行中的每一行并做一些逻辑以获得最高或最低..
或者我可以查询我感兴趣的每个LineNumber,并让查询得到我最高和最低,这将更容易..
这两种方式中的哪一种更有效?
答案 0 :(得分:1)
我会支持查询。乍一看,查询看起来很简单:
SELECT LineNumber MIN(RATING) MAX(RATING) FROM <YOUR_TABLE> WHERE... GROUP BY LineNumber
这应该给出你想要的东西(如果我理解的话)
答案 1 :(得分:1)
我遇到了一些像你这样的问题,但在我的情况下是在与Dates一起制作'之后'和'之前'......
我在代码中做了,我查询了我需要的所有数据,然后我比较了日期,在〜40k行中时间接近20秒......
所以我尝试将逻辑放在SQL中,当我得到查询时,我进行了比较,现在让我惊讶的是查询,我需要的所有内容都在不到2秒内完成...
我的建议是首先尝试将逻辑放在查询中,如果结果不满意,请尝试在代码中看看哪些是最好的。
祝你好运!
[]的 Bertan