在过滤数据网格的现有数据时,哪个更有效:
- filtering the existing data collection OR
- querying database with filter clauses发布于 2011-01-28 04:43:22
好了,您已经从数据库中提取了一个数据子集,并将其呈现给了用户。人世间万事大吉。现在,讨厌的用户想要对数据进行进一步的过滤。假设我们不是通过游标之类的方式访问大量数据集,那么数据已经在内存中了。我很想在那里过滤它们。
如果数据没有快速变化,并且存在一定程度的过时的可能性是可以接受的,那么就没有充分的理由返回数据库来提取已有数据的子集。您已经通过网络提取了一次数据,为什么还要再做一次呢?
如果数据确实需要更新,那么忘记我刚才所说的一切,去向DB索要它。
这个想法可能介于数据访问层和数据访问层之间。在这里,您将监视数据年龄,并确保即使用户在几个小时内不断更改相同数据集的筛选,也会从数据库中定期刷新。对过滤数据的请求也应该呈现给这一层,这样你的应用程序就不会察觉到它是实际从内存中获取的,还是只是从内存中获取的。如果你认为其中一种方法(内存或数据库)实际上总是更好的,那么这种关注点的分离将对你继续前进很有帮助,因为你将能够改变底层代码并保持你的应用程序不变。
https://stackoverflow.com/questions/4819752
复制相似问题