postgresql 获取PostgresSQL表中按日期排序的最新行:索引或排序表?

eyh26e7m  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(239)

我很难给这个问题命名,但我希望它是合适的。
我有一个事务表,每个事务都有一个Date列(类型为Date)。
我想运行一个查询,按日期获取最近的100个事务(ORDERBY查询足够简单)。
我的问题是,为了使这成为一个非常便宜的操作,对我的整个表排序是否有意义,这样我每次只需要选择前100行,或者我只是在日期列上创建一个索引?不确定第一个选项是否可行和/或良好的sql db实践。

b91juud3

b91juud31#

您可以在包含日期和查询的列上添加索引:

SELECT * FROM tab
ORDER BY datecol DESC
LIMIT 100;

另一个想法的问题是表中没有明确定义的顺序,每个UPDATE都会改变这个“顺序”,即使不做任何修改,顺序扫描也不需要从表的开头开始。

相关问题