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