使用此选择:
select 'some_table' as table_name, jsonb_agg(t.*) as content
from some_table t;如果some_table有1000行,那么“内容”中每一行重复的“列名”是否通过网络发送了1000次?或者这是在某种程度上优化了?如果列的名称确实每一行被引用一次,我们将为它们花费更多的带宽,然后为值花费更多的带宽。
发布于 2019-11-15 15:12:10
它没有被优化。每个列名(作为JSON键)都会被完整地、多次地发送。您可以尝试通过SSL连接并打开压缩,但由于安全原因,在大多数系统中默认禁用,并且越来越难以打开。
如果列的名称确实每一行被引用一次,我们将为它们花费更多的带宽,然后为值花费更多的带宽。
如果这是您必须为免费使用JSON支付的最高成本,那么您就认为自己是幸运的。
https://dba.stackexchange.com/questions/253394
复制相似问题