【问题标题】:Paging of Query Result Set查询结果集的分页
【发布时间】:2011-03-14 04:58:37
【问题描述】:

问候溢出者,

我想知道是否有一种方法可以查询某种类型的数据库,并且只获取完整结果集中的某个窗口,而不必真正遍历它们。

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

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

那么谷歌和其他搜索引擎呢,他们是得到完整的结果然后过滤还是直接访问所需的窗口框架?

谢谢大家!

【问题讨论】:

  • 我很难过,为什么还没有答案:(

标签: database indexing full-text-search


【解决方案1】:

您的问题最好分两部分回答。

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

    select * From table where id>99 and id

你会得到你想要的。

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

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

【讨论】:

    猜你喜欢
    • 2020-12-31
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多