Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何提高json_agg和json_build_对象性能?_Postgresql - Fatal编程技术网

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数组。服务器本身的执行速度非常快,也非常合理