Postgres 9.4中JSON到JSONB列转换的大致速度是多少?

9

我想迁移从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万条记录需要多长时间,并且它如何扩展。
尽管我可以自己得到这些数字,但我觉得这个问题可能对其他人有帮助。如果我尝试自己做这件事,我会为其他人提供答案,但不确定何时会发生。

9
这在很大程度上取决于每个 JSON 文档的大小。 - Craig Ringer
2个回答

5
从JSON迁移到JSONB花费了282秒。 这基本上与使用SQL INSERT插入数据所需的时间相匹配。
测试环境:
- PostgreSQL 9.5 - 4个核心,16GB RAM - JSON内容每行2KB - 520万行

3

以下是一份关于测试实例迁移的简略计算:

  • PostrgeSQL 9.6
  • 2个虚拟CPU内核,8GB RAM,EBS最大带宽450 MBit/s
  • 930K行数据
  • 每行20KB的JSON格式数据

整个迁移过程耗时66分40秒,即4000秒。
在迁移期间,写入IOPS大约为250,读取IOPS为50,运行时CPU使用率保持在60%的水平。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接