2017-03-27 29 views
0

例如,我有一个名为archived_at的列上有一个索引的Rails应用程序。该查询是一个OR,用于检查将来是否为archived_at IS NULL或archived_at(它是时间戳列)。PostgreSQL是否使用索引进行OR查询?

是否使用OR旁路索引?我以前听说过这方面的事情。

+2

我建议您使用'EXPLAIN'来查看Postgres如何使用您的索引:https://www.postgresql.org/docs/9.3/static/sql-explain.html – Dai

回答

0

PG可以使用位图索引扫描进行此操作。

如果您的行(或多或少)在物理表中很好地组织(例如,archived_at是表中的插入日期,并且只有很少的删除),此过程非常高效。