查询结果集的分页

时间:2010-07-10 08:36:41

标签: database indexing full-text-search

问候Overflowers,

我想知道是否有办法查询某种类型的数据库,只能在完整的结果集中获取某个窗口,而不必实际全部通过它们。

例如,如果我查询我的数据库并且我只想要结果编号100到200,那么数据库是否会获取与我的查询匹配的所有结果(例如0到1000),然后过滤它们以排除我指定的任何内容窗框?

实际上,我正在研究全文搜索问题(不是真正的关系数据库)。

那么谷歌和其他搜索引擎如何获得完整的结果然后过滤还是只能直接访问所需的窗口框架?

谢谢大家!

1 个答案:

答案 0 :(得分:0)

你的问题可能最好分两部分回答。

  • 对于数据库(传统的,关系型的),执行的查询包含许多“where”子句,这将导致数据库引擎限制它返回的结果数。因此,如果指定where子句基本上限制主键的2个值,

    选择*来自表格,其中ID> 99和id< 201;

你会得到你所要求的。

  • 对于搜索引擎,您为获取结果而进行的查询将始终进行分页 - 使用各种技术,所有结果将预先拆分为页面,一些将被缓存。其他页面将按需生成。因此,如果您想要100-200页面,那么您只需要获取所需的页面。

过滤选项效率不高,因为大型数据源永远不会将所有数据加载到内存和切片中 - 您只想加载所需的数据。