【发布时间】:2016-01-14 17:00:01
【问题描述】:
使用 Postgres JSON 列,它只存储 JSON,因此相同的 JSON 值但具有更长的键名将占用更多磁盘空间。 JSONB 列也是这种情况,还是二进制抽象回避了这一点?
【问题讨论】:
标签: postgresql jsonb
使用 Postgres JSON 列,它只存储 JSON,因此相同的 JSON 值但具有更长的键名将占用更多磁盘空间。 JSONB 列也是这种情况,还是二进制抽象回避了这一点?
【问题讨论】:
标签: postgresql jsonb
看起来对于跨行具有重复键的 JSONB 列没有大小优势。
我创建了两个表:
CREATE TABLE temp_a (a_column json);
CREATE TABLE temp_b (b_column jsonb);
并不断将{"abcdefghijklmnopqrstuvwxyz": 1} 插入其中。这两个表的大小都从8192 增加到16384,然后以相同的速度增加到49152。
SELECT pg_table_size('temp_a'); SELECT pg_table_size('temp_b');
【讨论】: