在 Postgres 中,索引是否会传递到视图中?

Dan*_* R. 7 database postgresql

Postgres 表上的索引是否可以加快引用它的视图的搜索速度?

例如,假设我有以下内容:

CREATE TABLE my_table(my_column INT);  -- Then insert lots of rows into the table.
CREATE VIEW my_view AS SELECT my_column FROM my_table;
CREATE INDEX my_index ON my_table(my_column);
SELECT * FROM my_view WHERE my_column = 1;
Run Code Online (Sandbox Code Playgroud)

第 4 行的 SELECT 语句是否受益于第 3 行的索引?

Lau*_*lbe 9

是的,那肯定会起作用。查询重写器用视图的定义替换视图,优化器处理结果。

EXPLAIN询问并说服自己。