使用Postgres JSON列,它只存储JSON,因此相同的JSON值但键名更长将占用更多磁盘空间。 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');