暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
PostgreSQL 并行创建 GIN 索引!构建速度飙升 30%.doc
48
6页
8次
2025-04-23
免费下载
PostgreSQL
并行创建
GIN
索引!构建速度飙升
30%
原创 红石

不知道你有没有注意到,在

中创建

索引
时,需要很长时间才能创建完成。现在,

支持并
行创建

索引了。
特性提交日志
支持并行创建
GIN
索引的操作
使


)和

索引构建式。大型而言
构建过程受

性能限制,这一改进可能会显著提升构建速度。
具体工作分配方式为,每个工作进程基于表的一个子集构建
索引项,这个子集由用于读取数据的常规并行扫描来确定。每
个工作进程使用本地元组排序(

)对相同键的索引项
进行排序和合并。

列表(对于给定键)不会重叠,这意味
着合并排序只需简单地连接两个列表。合并后的索引项会被写
入到供主进程使用的共享元组排序中。
主进程在将排序后的索引项写入索引之前,需要再次进行合
并。但通过这种方式,大部分工作由工作进程完成,主进程只
需合并数量较少的大型索引项,从而提高了效率。
大部分并行构建的基础架构是对

树索引所用代码的简化复
制,省略了与

索引无关的部分(例如唯一性检查)。
示例

索引功能强大,但创建速度相当缓慢。因此,在某些情
况下,这一改进可能会带来实质性的变化。
让我们来尝试进行测试。我们需要一些可以使用

索引进
行搜索的数据,所以编写一些数组数据:

!"##$%
$&'())(**#***+)#$
(#***#***),-
.//$)$,'$-'+0(**12*+)3'454+66.
-
这段代码会输出
(**
万个随机数组,每个数组的元素数量
随机(介于
2*
(78
之间),且每个元素都是
(
(*****
之间的数字。将输出保存到
,)$$ )9
件中,文件大小约为
2:*;
现在,我们可以创建一个表并加载数据:
<<
创建表
&=$$#'
>#$$ 7?@
+A
<<
从文件导入数据
&B= #!,,)$$ )9
之后,通过
B-1#
命令查看,表大小为
777;
接下来,请确保

不会使用并行操作,再创建索
引:
<<
设置最大并行维护工作线程数为
*
,$9#$$#,$$=#CD&*A
<<
创建

索引
=$-9EE#'>#$$ +A
耗时:
FF((()7GH
毫秒(
*(%(F)(((
)。
当然,我们应该验证索引是否在查询中被使用:
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜