加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL数据库dblink和postgres_fdw扩展使用比较

发布时间:2020-12-13 18:20:11 所属栏目:百科 来源:网络整理
导读:在之前的两篇文章中,章郎虫分别介绍了dblink和postgres_fdw两个扩展。今天我在这里初略地说下使用dblink和postgres_fdw后的实际感受和区别。 postgres_fdw远程可写功能是9.3版本出来后才新加的,而dblink也可以在以前的postgresql版本中使用。在使用过程中

在之前的两篇文章中,章郎虫分别介绍了dblink和postgres_fdw两个扩展。今天我在这里初略地说下使用dblink和postgres_fdw后的实际感受和区别。

postgres_fdw远程可写功能是9.3版本出来后才新加的,而dblink也可以在以前的postgresql版本中使用。在使用过程中,我把postgres_fdw安装在9.3,dblink安装在9.2.4,而远程连接的都是9.2.4版本的数据库。

首先在安装方面基本都差不多,可以用create extension dblink和create extension postgres_fdw分别安装。

然后比较他们的使用方法。在开始使用dblink之前,首先需要连接远程数据库,然后按照格式编写sql进行查询等操作。这里需要注意,在sql中需要把远程表的字段和类型在本地重新命名,不然sql会报错。这个章郎虫在一开始使用的时候觉得很不方便,而且如果每次查询一张表都要在sql中命名字段和类型其实是很糟糕的,不过幸好可以配置视图把sql“封装”起来。

1 selectdblink_connect('myconn','host=XXX.XXX.XXX.XXX port=XX dbname=postgres user=myname password=mypassword');
2 select*fromdblink('myconn','select * from mytable')ast(aint,b text,c text[])wherea>XX ;
3 createviewmyremote_tableasselect*fromdblink('myconn',c text[]) ;
4 select*frommyremote_tablewherea>XX ;
5 selectdblink_disconnect('myconn') ;

以上是dblink的基本用法,接下来说下postgres_fdw。第一步创建远程服务器,这里需要定义主机地址,数据库名和端口。第二步指定连接远程数据库的用户,和创建的远程服务器一起封装。第三步创建远程表,这里也需要把远程表的字段和类型都列一下。第四步和操作本地表一样操作远程表。

createserver vm05_zhangforeigndata wrapper postgres_fdw options (host'192.168.0.235',dbname'zhang',port'3500') ;
createusermappingFORPUBLICserver vm05_zhang options (password'xxx') ;
createforeigntablevm05_world (greeting text) server vm05_zhang options (table_name'world') ;
select*fromvm05_world ;

最后在使用时章郎虫还发现dblink在运行数据量大的sql时容易丢失远程连接,导致查询或者更新失败,而postgres_fdw不会出现丢失连接的情况。另外dblink需要先连接才可以查询,我觉得在脚本中运用也没有那么方便。如果让账号密码明文显示,对数据库的安全来说也不是一个好选择。不过这个版本的postgres_fdw和dblink一样,都还不能对远程表的数据量实际估算,join表时也不会进行优化,所以远程操作时最好还是单表操作。

上面是章郎虫的实际使用感受,了解的很浅,总之个人感觉和dblink比起来,postgres_fdw方便多了。

参考:

dblink:http://www.sijitao.net/1368.html

postgres_fdw:http://www.sijitao.net/1434.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读