database - 按降序索引日期列是个好主意吗?

标签 database oracle indexing

在大多数具有日期列的表中,我们“通常”会查询最近的信息。

按降序“一般”索引日期列是个好主意吗?

最佳答案

不熟悉 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/

相关文章:

Python - 如何使用 Pandas 编辑基于另一个 CSV 的 CSV

php - fatal error : Uncaught exception 'PDOException' with message 'could not find driver'

oracle - 如何在多个 Oracle 数据库中更改密码?

database - 是否可以为在 View 中转换为 DATE 的 TIMESTAMP 列构建基于 Oracle 函数的索引?

sql - DROP、TRUNCATE 和 DELETE 之间的区别和最佳用途是什么?它们可以回滚吗?

sql - 事务处理 SQL : Display two SUM() from differents tables?

java - 从 Oracle Forms 6i 迁移到 Web 的最佳解决方案?

Oracle-更新多行值,其中 id 列等于特定值

sql-server - SQL Server 中覆盖和单个索引的重叠

python - 如何使用 Django 功能而不是所有键来索引刚刚选择的 json 键?