2021年9月30日,PostgreSQL 14被释放。需要一个引物吗?Umair Shahid最近拼凑成了一个伟大的概述,PostgreSQL 14 -性能、安全性、可用性和可观察性。
外国数据基于SQL-MED包装一个PostgreSQL的最酷的特征。以来的对外数据包装发展的特性集9.1版。我们知道PostgreSQL 14βGA将在不久后面世,因此有助于研究PostgreSQL 14日即将到来的特性。有很多人,还有一些改进国外包装数据。一个新的性能特性。”批量插入”,添加在PostgreSQL 14。API扩展,允许批量插入数据到外国表,因此,使用该API,任何外国包装器现在可以实现批量插入数据。这绝对是更有效的比插入单个行。
API包含两个新功能,可以用来实现批量插入。
这里没有需要解释这些功能,因为它是有用的对该功能感兴趣的人到外国数据包装像mysql_fdw mongo_fdw, oracle_fdw。如果有人有兴趣看到,他们可以看到在PostgreSQL文档。但好消息是,postgres_fdw已经实现,并在PostgreSQL 14。
有一个新的服务器选项添加batch_size,你可以指定在创建外国服务器或创建一个表。
- 创建一个postgres_fdw扩展
|
1
|
创建
扩展
postgres_fdw
;
|
- 创建一个外国服务器没有batch_size
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
|
创建
服务器
postgres_svr
外国
数据
包装器
postgres_fdw
选项
(
主机
“127.0.0.1”
)
;
创建
用户
映射
为
流浪的
服务器
postgres_svr
选项
(
用户
“postgres”
,
密码
“通过”
)
;
创建
外国
表
foo_remote
(
一个
整数
,
b
字符
,
c
文本
,
d
VARCHAR
(
255年
)
)
服务器
postgres_svr
选项
(
表
_的名字
“foo_local”
)
;
解释
(
详细的
,
成本
从
)
插入
成
foo_remote
值
(
generate_series
(
1
,
1
)
,
“c”
,
“文本”
,
“varchar”
)
;
查询
计划
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
插入
在
公共
.foo_remote
远程
SQL
:
插入
成
公共
.foo_local
(
一个
,
b
,
c
,
d
)
值
(
美元
1
,
美元
2
,
美元
3
,
美元
4
)
批处理
大小
:
1
- >
ProjectSet
输出
:
generate_series
(
1
,
1
)
,
“c”
::
字符
(
1
)
,
“文本”
::
文本
,
“varchar”
::
字符
不同
(
255年
)
- >
结果
(
6
行
)
|
- 执行时间batch_size不指定
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
解释
分析
插入
成
foo_remote
值
(
generate_series
(
1
,
100000000
)
,
“c”
,
“文本”
,
“varchar”
)
;
查询
计划
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
插入
在
喷火
_远程
(
成本
=
0.00,500000.02
行
=
0
宽度
=
0
)
(
实际
时间
=
4591443.250,4591443.250
行
=
0
循环
=
1
)
- >
ProjectSet
(
成本
=
0.00,500000.02
行
=
100000000
宽度
=
560年
)
(
实际
时间
=
0.006,31749.132
行
=
100000000
循环
=
1
)
- >
结果
(
成本
=
0.00,0.01
行
=
1
宽度
=
0
)
(
实际
时间
=
0.002,0.002
行
=
1
循环
=
1
)
规划
时间
:
4.988
女士
执行
时间
:
4591447.101
女士
- - -
时机
是
重要的
(
5
行
)
|
- 创建一个外国表batch_size = 10,如果没有指定batch_size与服务器的创建
|
1
2
3
4
5
|
创建
外国
表
foo_remote
(
一个
整数
,
b
字符
,
c
文本
,
d
VARCHAR
(
255年
)
)
服务器
postgres_svr
选项
(
表
_的名字
“foo_local”
,
批处理
_大小
“十”
)
;
|
- 创建一个外国服务器batch_size = 10,现在每个表的服务器将使用batch_size 10
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
26
|
创建
服务器
postgres_svr_bulk
外国
数据
包装器
postgres_fdw
选项
(
主机
“127.0.0.1”
,
batch_size
=
“十”
)
;
- - -
新
选项
batch_size
创建
用户
映射
为
流浪的
服务器
postgres_svr
选项
(
用户
“postgres”
,
密码
“通过”
)
;
创建
外国
表
foo_remote
(
一个
整数
,
b
字符
,
c
文本
,
d
VARCHAR
(
255年
)
)
服务器
postgres_svr
选项
(
表
_的名字
“foo_local”
)
;
解释
(
详细的
,
成本
从
)
插入
成
foo_remote_bulk
值
(
generate_series
(
1
,
1
)
,
“c”
,
“文本”
,
“varchar”
)
;
查询
计划
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
插入
在
公共
.foo_remote_bulk
远程
SQL
:
插入
成
公共
.foo_local_bulk
(
一个
,
b
,
c
,
d
)
值
(
美元
1
,
美元
2
,
美元
3
,
美元
4
)
批处理
大小
:
10
- >
ProjectSet
输出
:
generate_series
(
1
,
1
)
,
“c”
::
字符
(
1
)
,
“文本”
::
文本
,
“varchar”
::
字符
不同
(
255年
)
- >
结果
(
6
行
)
|
- 执行时间batch_size = 10:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
解释
分析
插入
成
foo_remote_bulk
值
(
generate_series
(
1
,
100000000
)
,
“c”
,
“文本”
,
“varchar”
)
;
查询
计划
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
插入
在
foo_remote
_散装
(
成本
=
0.00,500000.02
行
=
0
宽度
=
0
)
(
实际
时间
=
822224.678,822224.678
行
=
0
循环
=
1
)
- >
ProjectSet
(
成本
=
0.00,500000.02
行
=
100000000
宽度
=
560年
)
(
实际
时间
=
0.005,10543.845
行
=
100000000
循环
=
1
)
- >
结果
(
成本
=
0.00,0.01
行
=
1
宽度
=
0
)
(
实际
时间
=
0.001,0.002
行
=
1
循环
=
1
)
规划
时间
:
0.250
女士
执行
时间
:
822239.178
女士
- - -
时机
是
重要的
(
5
行
)
|
结论
PostgreSQL扩大外国数据包装器的特性列表,和批量插入另一个很好的补充。这一特性被添加到核心,我希望所有其他外国数据包装也会实现它。
雷竞技下载官网Percona分布PostgreSQL提供最好的和最重要的开源社区的企业组件,在一个单一的分布,设计和测试一起工作。






