您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

分页和过滤在PostgreSQL中很大的表上(键集分页?)

分页和过滤在PostgreSQL中很大的表上(键集分页?)

这是我的处理方式。对于我获取的第一页,我使用

SELECT id, col, col, col 
  FROM output 
 ORDER BY id DESC
 LIMIT 10000

然后,在我的客户端程序(node.js)中,id从结果集的最后一行捕获值。当我需要下一页时,请执行此操作。

 SELECT id, col, col, col
   FROM output
  WHERE id < my_captured_id_value
  ORDER BY id DESC

这利用了索引。即使您从表中删除了一些行,它也能正常工作。

顺便说一句,如果您的第一个分页页面具有最大的ID,则您可能希望使用降序索引。 CREATE UNIQUE INDEX index_id ON output USING btree (ID DESC)

SELECT *对大型数据库性能有害。始终列出您实际需要的列。

SQLServer 2022/1/1 18:37:27 有510人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶