繁体   English   中英

索引跨越PostgreSQL中的多个表

[英]Index spanning multiple tables in PostgreSQL

在PostgreSQL中是否可以在包含多个表的字段的表达式上放置索引。 例如,加速查询以下形式的索引:

SELECT *, (table1.x + table2.x) AS z
FROM table1
INNER JOIN table2
ON table1.id = table2.id
ORDER BY z ASC

不,它不可能在许多表上都有索引,它也不能保证加速任何东西,因为你不会总是得到一个Index Only Scan。 你真正想要的是物化视图,但pg也没有。 您可以尝试使用此类 或此类的触发器自行实现它。


更新

如@petter所述。 物化观点在9.3中介绍

不,这不可能在任何目前出货的SQL数据库管理系统。 Oracle支持位图连接索引 ,但这可能不相关。 我不清楚您是否只想在多个表的连接列上建立索引,或者是否要在连接表的任意列上建立索引。

要确定性能问题的真正来源,请学习阅读PostgreSQL的EXPLAIN ANALYZE的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM