我有类似结构的表格:
- ID(序列INT)(该指标)
- 帖子(文本)
- ...
- CreationDate(日期时间)(在此说明指数)
我需要实现分页。 我简单的查询是这样的:
SELECT Id, Post, etc FROM Posts ORDER BY CreationDate desc OFFSET x LIMIT 15
当有几条记录(低于1万)的表现是有点忍受,但是当表的增长有一个明显的区别。
跳绳的事实,有良好的配置像缓存大小,工作存储器,成本,共享MEM,等等...什么可以做,以提高性能和什么是使用的Postgres分页的最佳实践DB设置。 有类似要求的东西在这里 ,但我不知道这是否可以在我的情况下被应用过。
由于我的Id
是自动递增的(因此可以预测)我在想其他选项之一是有这样的事
SELECT Id, Post...FROM Posts WHERE Id > x and Id < y
但是,这似乎使事情变得复杂,我得记录计数所有的时间,除了它不能保证,我总是会得到15条记录(例如,如果该职位之一已被删除,ID是不是“直线”序列了)。
我想了解光标的太多,但如果我没有记错光标将保持连接打开,这是不是在我的情况下,可以接受的。