2016-05-11 13 views
5

Sto utilizzando postgres_fdw per creare un collegamento tra due database. Quindi ho impostato le tabelle esterne e ho fatto alcuni inserti dai tavoli stranieri ai miei tavoli live. Ho notato che ci vuole un po 'di tempo anche perché non hanno indici.Crea indice su tabella esterna PostgreSQL

È possibile creare un indice in una tabella esterna, è lo standard

CREATE INDEX ON foreign_table_name (column)? 

risposta

1

No, si otterrà un errore:

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

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

e ha senso come la query "viaggio "througth the net e recupera i dati dal database originale ogni volta che esegui una query sulla tabella (non memorizzerà i dati da indicizzare).

Quello che puoi fare è usare spiegare verbose per ottenere la query che si sta eseguendo sull'altro lato e indicizzare la tabella remota di conseguenza.

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 

Spero che questo aiuti. Buona fortuna!