heroku postgres按索引列查询分组需要2秒以上的时间才能执行

时间:2016-10-04 11:35:43

标签: sql postgresql heroku group-by heroku-postgres

关于heroku postgres我的小组通过查询花了超过2秒,这是正常的吗?我该如何进一步优化?两列都被编入索引所以我假设它应该运行得更快。

查询是,

EXPLAIN ANALYZE(SELECT COUNT(*), context, call_type FROM call_tasks GROUP BY call_tasks.context, call_tasks.call_type );

查询计划和分析:

GroupAggregate  (cost=0.08..11500.84 rows=12 width=11) (actual time=35.395..2545.426 rows=7 loops=1)
   Group Key: context, call_type
   ->  Index Only Scan using index_call_tasks_on_context_and_call_type on call_tasks  (cost=0.08..10338.79 rows=774677 width=11) (actual time=0.022..1480.729 rows=781076 loops=1)
         Heap Fetches: 43682
 Planning time: 0.085 ms
 Execution time: 2545.464 ms
(6 rows)

我正在使用爱好基本数据库。https://elements.heroku.com/addons/heroku-postgresql

1 个答案:

答案 0 :(得分:0)

这是你能得到的最好的,只有通过改进硬件才能进一步改进:

  • 更快的CPU加速聚合。
  • 将更多内存保存在RAM中。

除此之外,如果您对近似结果感到满意,您可以使用定期更新的物化视图。