2016-05-11 13 views
5

Tôi đang sử dụng postgres_fdw để tạo liên kết giữa hai cơ sở dữ liệu. Tôi sau đó thiết lập các bảng nước ngoài và làm một số chèn từ các bảng nước ngoài để bàn sống của tôi. Tôi đã nhận thấy nó mất khá nhiều thời gian bởi vì họ không có chỉ mục.Tạo chỉ mục trên bảng nước ngoài PostgreSQL

Bạn có thể tạo một chỉ mục trên một bảng nước ngoài, nó là tiêu chuẩn

CREATE INDEX ON foreign_table_name (column)? 

Trả lời

1

Không, bạn sẽ nhận được một lỗi:

ERROR: cannot create index on foreign table "tablename" 
********** Error ********** 

ERROR: cannot create index on foreign table "tablename" 
SQL state: 42809 

Và nó có ý nghĩa như truy vấn sẽ "du lịch "througth mạng và lấy dữ liệu từ cơ sở dữ liệu gốc mỗi lần bạn truy vấn bảng (sẽ không lưu trữ dữ liệu để lập chỉ mục).

Những gì bạn có thể làm là sử dụng giải thích chi tiết để nhận truy vấn đang được thực hiện ở phía bên kia và lập chỉ mục bảng từ xa cho phù hợp.

explain verbose select * from schema.foreign_table 

"Foreign Scan on schema.foreign_table (cost=25.00..1025.00 rows=1000 width=84)" 
" Output: field1, field2, field3 
" Remote server startup cost: 25" 
" Remote query: SELECT field1, field2, field3 FROM schema.original_table 

Hy vọng điều đó sẽ hữu ích. Chúc may mắn!

Các vấn đề liên quan