Postgresql 如何提高json_agg和json_build_对象性能?
我的表有Postgresql 如何提高json_agg和json_build_对象性能?,postgresql,Postgresql,我的表有179730行。与数据库应该能够处理的数百万或数十亿行相比,这是非常小的 用简单的查询 -- 305ms SELECT * FROM my_table; -- 300ms SELECT t1.type FROM my_table as t1 GROUP BY t1.type; 这需要300毫秒,这对于表格的完整扫描是合理的 但是使用json\u agg和json\u build\u object时,性能出人意料地非常慢 -- 5s 904ms SELECT t1.type,
179730行。与数据库应该能够处理的数百万或数十亿行相比,这是非常小的
用简单的查询
-- 305ms
SELECT *
FROM my_table;
-- 300ms
SELECT t1.type
FROM my_table as t1
GROUP BY t1.type;
这需要300毫秒
,这对于表格的完整扫描是合理的
但是使用json\u agg
和json\u build\u object
时,性能出人意料地非常慢
-- 5s 904ms
SELECT t1.type,
json_agg(json_build_object(
'amount', t1.amount,
'text', t1.text,
'object_id', t1.object_id
)) AS members
FROM my_table as t1
GROUP BY t1.type;
从305ms
到5s904ms
,只需使用json\u agg
进行聚合
我怎样才能提高聚合的速度呢?我知道了。实际上速度非常快。时间增加的原因是因为我从远程位置获取数据。经过的时间基本上是我“下载”JSON数组。服务器本身的执行速度非常快,也非常合理