逐个优化组(嵌套哈希)

时间:2018-06-11 14:43:15

标签: json postgresql performance

我的表jsonmeasurement_data)中有measurement_data.data列。这个哈希包含一堆数据,我的目标是在哈希中的几个字段中收集一些统计信息(一段时间,例如50秒)。我的结束查询看起来像

SELECT min(a) as min_a,
       max(a) as max_a,
       min((string_to_array(translate(data ->> 'b', '[]', ''), ','))[2]::int) as min_b,
       max((string_to_array(translate(data ->> 'b', '[]', ''), ','))[2]::int) as max_b,
       min((string_to_array(translate(data ->> 'c', '[]', ''), ','))[2]::int) as min_c,
       max((string_to_array(translate(data ->> 'c', '[]', ''), ','))[2]::int) as max_c,
       extract('epoch' from measured_at)::int / 50 as group_timestamp
FROM measurement_data,
     unnest(
       string_to_array(
         translate(data ->> 'a', '[]', ''),
       ',')::int[]
     ) as rr_intervals
WHERE measurement_id = 1000 AND data ->> 'a' <> '[]'
group by group_timestamp
order by group_timestamp;

我的参数描述: a是值数组(例如[1300,200,400]), bc是两个值的数组:timestamp和value(例如[1528727921000,100])。我只需按值获取统计数据,因此我对时间戳不感兴趣。

一切正常并且返回正确的结果,除了一件事:它的工作太慢了。在10_000条记录上,请求需要约7秒。有没有办法改善这个要求的性能?

0 个答案:

没有答案