PostgreSQL:如果我为每个表定义一对一的视图,并且只从视图层查询,会使用底层表的索引吗?

aydmsdu9  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(1)|浏览(162)

我正在使用PostgreSQL,我想在我的数据库模式中的所有表之上创建一个视图层。我将实现视图到表的一对一Map,这样这些视图就不会有连接。目的是提供一个只读抽象,这样我就可以随着时间的推移改变数据库的底层表结构,但控制通过视图暴露的内容。
我的问题是,当我开始使用视图进行查询(仅限SELECT语句)时,包括一些复杂的连接和其他复杂的查询动态,如聚合/分组,PostgreSQL是否会像直接查询一样使用底层表上的索引?
我现在就开始做一个PoC,我还没有任何结果,但是我想听听其他人的知识、经验和观点。

nxagd54h

nxagd54h1#

是的,引擎将使用可用的索引并优化代码。它基本上将用视图的定义替换视图并构建计划。
Here您可以改进一些示例并进一步测试它。

相关问题