![[译] 一个TOAST适配所有:JSONB TOASTER | PG 15 特性预览](https://oss-emcsprod-public.modb.pro/image/editor/20231002-8a28c62d-f381-4a47-87fa-de2625adb2b5.png)
[译] 一个TOAST适配所有:JSONB TOASTER | PG 15 特性预览

原文地址:https://obartunov.livejournal.com/205362.html
原文作者:obartunov
我们已经为 PG 15 提交了 TOAST API。
下面是JSONB的性能分析,它使用了TOAST API实现的JSONB TOASTER。
每个jsonb,诸如:key1, looong key2[], key3, loong key4[]。 关于基准测试中使用的数据和查询的描述,请查看我们在 pgvision 2021 演讲中的第10张幻灯片。
下图中可以清晰的看出 jsonb 缩放的问题。

我们使用TOAST API实现了自定义的JSONB TOASTER(作为一个扩展!),并依据JSONB大小(inline, compressed inline, toasted)和关键位置的不同展示了优化结果集。 我们可以看到(第一张图),所有的优化(+all)都会导致两个数量级的性能提升。

其他图片显示了关键访问性能受不同指标和jsonb大小的影响情况。



备注:
TOAST API是基于postgres可扩展性的扩展插件,它允许按自数据类型定制长值存储(以扩展插件形式实现)。我们的计划是将API包含在PG15,以及GSON,一个通用 JSON API ,这样我们之后可以发布jsonb_toaster
扩展插件。因为我们决定只专注于JSONB,所以我们将移除GSON对JSON的支持(以后可以恢复),以使得补丁更小。
- Title: [译] 一个TOAST适配所有:JSONB TOASTER | PG 15 特性预览
- Author: 严少安
- Created at: 2022-03-15 09:03:08
- Updated at: 2022-03-15 09:03:08
- Link: https://shawnyan.cn/2022/postgresql/fanyi-pg-15-jsonb-toaster/
- License: This work is licensed under CC BY-NC-SA 4.0.
推荐阅读
Comments