0
例如,我有一个名为archived_at
的列上有一个索引的Rails应用程序。该查询是一个OR,用于检查将来是否为archived_at
IS NULL或archived_at
(它是时间戳列)。PostgreSQL是否使用索引进行OR查询?
是否使用OR旁路索引?我以前听说过这方面的事情。
例如,我有一个名为archived_at
的列上有一个索引的Rails应用程序。该查询是一个OR,用于检查将来是否为archived_at
IS NULL或archived_at
(它是时间戳列)。PostgreSQL是否使用索引进行OR查询?
是否使用OR旁路索引?我以前听说过这方面的事情。
PG可以使用位图索引扫描进行此操作。
如果您的行(或多或少)在物理表中很好地组织(例如,archived_at是表中的插入日期,并且只有很少的删除),此过程非常高效。
我建议您使用'EXPLAIN'来查看Postgres如何使用您的索引:https://www.postgresql.org/docs/9.3/static/sql-explain.html – Dai