PostgreSQL:压缩 JSON 列

kbo*_*kbo 7 postgresql json

我有一个带有 JSON 类型列的表,表中有 1 行。以下请求显示结果20761字节:

SELECT pg_column_size(test_column) FROM test_table;
Run Code Online (Sandbox Code Playgroud)

test_column 的值有 size 个45888字节,因此这意味着 PostgreSQL 压缩了该数据,但压缩了45888/20761=~2.1多次。如何对 JSON 类型进行比现有值更多的压缩?

Xat*_*too 7

将类型更改为jsonb不会使其使用更少的磁盘空间,在某些情况下甚至可能使用更多的磁盘空间。看看ZSON。它是一个 PostgreSQL 扩展,通过为最常见的数据(很可能是 json-keys)创建查找表来压缩 JSON 数据,它声称能够节省最多一半的所需磁盘空间。