如果我创建一个Postgres索引ASC和DESC之间有什么区别?

del*_*ber 6 postgresql

这是否意味着ASC对于诸如此类的查询更好

价格> 40

和DESC更适合查询

价格<40?

Kal*_*lex 8

where条件可能不会受到影响,但ORDER BY肯定会受到影响

PostgreSQL索引订购文档

  • 这是重要的一点:*一个重要的特殊情况是ORDER BY结合LIMIT n:显式排序必须处理所有数据以识别前n行,但如果有一个索引匹配ORDER BY,则第一个可以直接检索n行,而不扫描剩余的行.* (2认同)

Den*_*rdy 6

PostgreSQL(或任何其他数据库引擎,就此而言)将以任何方式读取您的索引.您将获得索引扫描或反向索引扫描.

问题是当你进行多列扫描时.在这种情况下:

index on (foo, bar)
Run Code Online (Sandbox Code Playgroud)

将会工作foo asc, bar asc,以及foo desc, bar desc.在某些数据库上,这将无法工作foo desc, bar asc(反向扫描foo,忽略条形图)或foo asc, bar desc(扫描foo,忽略条形图).