栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

客户端排序+休眠分页?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

客户端排序+休眠分页?

您需要在服务器上排序。

然后您可以:

  • 将完整的结果集发送给客户端,并在客户端 处理分页 。问题在于结果集可能很大,无法从db检索并发送给客户端。

  • 在服务器端处理分页 。客户端和服务器一次仅从数据库请求一页。然后的问题是,每次您向数据库请求特定页面时,您将一次又一次地命令相同的数据以提取页面1,页面2等。这可能是大型数据库的问题。

  • 两者之间要进行 权衡 (对于大型数据库):

    • 设置一个限制,例如300个项目
    • 服务器按照以下顺序向数据库询问前301个项目:
    • 服务器将结果集(最多301个)保留在缓存中
    • 客户端逐页请求服务器
    • 服务器使用缓存处理分页
    • 如果有301个项目,则客户端显示“命中列表包含300多个项目。它已被截断”。

注意1:通常,客户不在乎是否无法进入最后一页。您可以改进解决方案以首先计算行总数(此后无需排序),以便可以显示对用户更好的消息,例如“结果包含2023个元素,只能查看前300个元素”。

注意2:如果您不使用任何排序条件就在数据库中逐页请求数据,则大多数数据库(至少Oracle)不保证 任何
排序。因此,如果您对数据库发出两个请求,则第1页和第2页中的项目可能相同。如果多个项目具有用于订购的相同值(例如,相同的日期),则会发生相同的问题。db不能保证具有相同值的元素之间的任何排序。如果是这种情况,那么我建议使用PK作为(例如

ORDERBY date, PK
)排序的最后排序标准,以便以一致的方式完成分页。

注意3:我谈论的是客户端和服务器,但是您可以根据自己的具体情况来调整想法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号