0

数据库 1 在数据库 2 上有外部表 a 和 b。

我们如何在这些外部表 a 和 b 上创建索引。这些外部表分别是对 database2.c 和 database2.d 表的包装,它们确实有必要的索引。

您将如何在外部表 a 和 b 上创建索引?这甚至可能吗?

我得到一个无法在外部表上创建索引 - 当我在 postgres 中尝试一个简单的创建索引命令时

4

2 回答 2

4

您不能在外部表上创建索引,而是在外部表上编写触发器并在 postgres 中创建本地表,这样每当您的外部表中发生插入、更新或删除时,它都会反映在您的本地表中并为其编制索引。

于 2016-11-28T12:17:20.440 回答
2

与外部表连接可能会导致查询速度变慢。由于索引不是外部表的选项,因此请考虑在外部表上创建物化视图。物化视图确实允许索引

CREATE FOREIGN TABLE members_fdw(...)

CREATE MATERIALIZED VIEW members AS 
       select * from members_fdw  
       WITH  DATA 

CREATE UNIQUE INDEX "member_id" ON members USING btree ("id");
于 2017-05-22T06:13:59.010 回答