MySQL中高效的分页

MySQL中高效的分页,mysql,pagination,Mysql,Pagination,我知道这个问题已经被回答过很多次了。 事实上,如果你提到 你得到答案了 然而,我对这种常见的方法有如下疑问 如果引用幻灯片18,请考虑以下事件序列: 客户端获取“第一页” “第三页”中存在ID=19的帖子,其累积计数增加到98,从而将其推到“第一页” 客户端获取“第二页” 然后,客户端将错过post ID=19。我正在做一个移动应用程序,其中项目缓存在客户端(想象一个无限滚动列表)。如果缓存没有定期更新,那么这篇文章将错过一段时间 有什么聪明的方法可以确保客户端不会错过任何项目,特别是在客户端获

我知道这个问题已经被回答过很多次了。 事实上,如果你提到 你得到答案了

然而,我对这种常见的方法有如下疑问

如果引用幻灯片18,请考虑以下事件序列:

  • 客户端获取“第一页”
  • “第三页”中存在ID=19的帖子,其累积计数增加到98,从而将其推到“第一页”
  • 客户端获取“第二页”
  • 然后,客户端将错过post ID=19。我正在做一个移动应用程序,其中项目缓存在客户端(想象一个无限滚动列表)。如果缓存没有定期更新,那么这篇文章将错过一段时间

    有什么聪明的方法可以确保客户端不会错过任何项目,特别是在客户端获取可能由其他用户同时更新的项目的情况下


    我考虑为表中的每个项目设置一个唯一的“更新时间戳”,作为解决方案。然而,这将需要某种形式的序列化来保持时间戳的唯一性,并且对于大量更新来说性能不太好。我们还需要确保时间戳是单向递增的,否则项目也可能会丢失。

    您可以使用浏览器的IndexedDB或WebSQL。对于您已经发送的任何请求,使用索引数据库并将所有数据转储到那里(可能是异步的)。

    如果您愿意,我可以分享IndexedDB的一个示例。eBay有一个非常重要的问题,如果您按“最快结束”排序,在您浏览即将结束的页面并移动下一页时,可能已经创建了一个间隙。