为了加速基于大型postgres集合的页面生成,我们将查询结果缓存在memcache中。但是,对于非常大或者很少访问的不可变集合,我想知道在postgres中保存服务器端游标是否是一种可行的备用缓存策略。
这个想法是,在集合中间服务页面之后,“next”和“prev”链接比集合中其他地方的随机查询更有可能被使用。我可以在附近有一个“WITH HOLD”光标,以避免(看似不可避免的)查询的大量启动成本吗?
我想知道服务器上的资源消耗。如果集合是不可变的,保存游标不需要很多资源,但我想知道postgres在这方面是如何优化的。任何进一步文件的链接都将受到赞赏。
答案 0 :(得分:3)
你会遇到很多问题。
简而言之:不要这样做。如何在后台预先计算下一页/上一页,并将其存储在memcached中?
答案 1 :(得分:3)
之前已经做出了一个很好的答案Best way to fetch the continuous list with PostgreSQL in web
问题类似,基本上你在服务器上存储一个带有分页令牌和过期的PK列表。