JSON -> JSONB 列转换在 Postgres 9.4 中的大致速度
Roughly how fast is JSON -> JSONB column conversion in Postgres 9.4
我希望从 Postgres 9.3 迁移到 9.4,并且在 JSON 列中有大量数据。虽然这很好,但我想看看迁移到更高效的列存储(JSONB 似乎是 — 一项非常令人兴奋的技术!)。
要实际迁移,我想知道类似
的迁移特征
ALTER TABLE table_with_json
ALTER COLUMN my_json
SET DATA TYPE jsonb
USING my_json::jsonb;
(来自 )。
理想情况下,最好知道迁移 100 万和 1000 万条目需要多长时间,以及它如何扩展。
虽然我可以自己得到这些数字,但我认为这个问题可能对其他人有帮助。如果我最终自己尝试这个,我一定会为其他人提供答案,但不确定什么时候会发生。
从 JSON 迁移到 JSONB 花费了 282 秒。它基本上与插入数据所需的时间匹配 SQL INSERT.
测试环境:
- PostgreSQL9.5
- 4 核,16GB 内存
- 2KB/行 JSON 内容
- 520 万行
一些用于测试实例迁移的餐巾纸背面数字:
- PostrgeSQL 9.6
- 2 vcpu 核,8GB RAM,EBS 最大带宽 450 MBit/s
- 930K 行
- 20KB/行 json
用了 66:40min - 4000 秒。
在迁移期间,写入 IOPS 约为 250,读取为 50,cpu 在整个 运行.
期间保持在 60%
我希望从 Postgres 9.3 迁移到 9.4,并且在 JSON 列中有大量数据。虽然这很好,但我想看看迁移到更高效的列存储(JSONB 似乎是 — 一项非常令人兴奋的技术!)。
要实际迁移,我想知道类似
的迁移特征ALTER TABLE table_with_json
ALTER COLUMN my_json
SET DATA TYPE jsonb
USING my_json::jsonb;
(来自
理想情况下,最好知道迁移 100 万和 1000 万条目需要多长时间,以及它如何扩展。
虽然我可以自己得到这些数字,但我认为这个问题可能对其他人有帮助。如果我最终自己尝试这个,我一定会为其他人提供答案,但不确定什么时候会发生。
从 JSON 迁移到 JSONB 花费了 282 秒。它基本上与插入数据所需的时间匹配 SQL INSERT.
测试环境:
- PostgreSQL9.5
- 4 核,16GB 内存
- 2KB/行 JSON 内容
- 520 万行
一些用于测试实例迁移的餐巾纸背面数字:
- PostrgeSQL 9.6
- 2 vcpu 核,8GB RAM,EBS 最大带宽 450 MBit/s
- 930K 行
- 20KB/行 json
用了 66:40min - 4000 秒。
在迁移期间,写入 IOPS 约为 250,读取为 50,cpu 在整个 运行.