在大多数具有日期列的表中,我们“通常”会查询最近的信息。
按降序“一般”索引日期列是个好主意吗?
最佳答案
不熟悉 Oracle 的内部结构,但这是我对它如何与 Postgres 一起工作的理解:
出于所有意图和目的,索引都是聚集的。因此,如果您将它们订购为 asc 并且新行总是添加到它的末尾(例如 created_at、updated_at、billed_at 等),您的新行将被附加(或几乎附加)而不是前置(导致磁盘页面 split )。这样更快。
您的查询计划器会很乐意以相反的顺序读取索引。因此,如果它是单列索引,则两者都有效——当涉及到如何在您的用例中插入新行时,请使用最自然的索引。
当您有一个多列索引时,以相反顺序排列的索引可能会变得有趣。比如,审计日志表中的 (id, created_at desc)
。这实际上是一个不好的例子,但重点是:如果您按 id, created_at desc
排序,索引将按原样使用。
关于database - 按降序索引日期列是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416000/