Postgresql umns的变化。因此,没有必要(分别更容易和更有效)检查是否已经有符合记录的团队,或者是否必须创建新的团队。关于你的绩效问题,我觉得索引report(report\u date org\u id)和ad\u group\u元数据(org\u id、camp
Postgresql umns的变化。因此,没有必要(分别更容易和更有效)检查是否已经有符合记录的团队,或者是否必须创建新的团队。关于你的绩效问题,我觉得索引report(report\u date org\u id)和ad\u group\u元数据(org\u id、camp,postgresql,indexing,group-by,query-performance,Postgresql,Indexing,Group By,Query Performance,umns的变化。因此,没有必要(分别更容易和更有效)检查是否已经有符合记录的团队,或者是否必须创建新的团队。关于你的绩效问题,我觉得索引report(report\u date org\u id)和ad\u group\u元数据(org\u id、campaign\u id、ad\u group\u id)可能会有所帮助。但你可能已经有一个或多个both@Islingre,是的,我两个都有(解释说明)。此查询不是非常复杂的查询,它在Mysql中工作得非常有效。我想知道关于IN语句是否有一个特殊的
umns的变化。因此,没有必要(分别更容易和更有效)检查是否已经有符合记录的团队,或者是否必须创建新的团队。关于你的绩效问题,我觉得索引
report(report\u date org\u id)
和ad\u group\u元数据(org\u id、campaign\u id、ad\u group\u id)
可能会有所帮助。但你可能已经有一个或多个both@Islingre,是的,我两个都有(解释说明)。此查询不是非常复杂的查询,它在Mysql中工作得非常有效。我想知道关于IN语句是否有一个特殊的案例或特殊的索引类型?从EXPLAIN
中,我不确定列的顺序。这可能有一些大的影响(至少对于第一个索引)。也许可以运行解释分析
,查看估计值是否与您的数据相符。也许你也会看到问题的根源是什么。毕竟,24.57的预期成本应该会带来立竿见影的效果。也许您的表的统计数据是错误的?表上的VACUUM FULL
也可能有帮助。@Islingre查询的速度非常慢。真空全效果性能也一样?显然,您为Postgres安装配置了非常少量的work\u mem
。这意味着Postgres不能使用散列聚合。但是,内存的工作量也很小,它必须在磁盘上进行排序。你的索引扫描看起来也很慢。读取大约25MB的数据需要1.3秒。您使用的是哪种硬盘?我想排序是将行分组的最简单方法(至少PostgreSQL是这样认为的)。因此,首先排序,然后迭代结果,并在每一列更改时启动一个新组。因此,没有必要(分别更容易和更有效)检查是否已经有符合记录的团队,或者是否必须创建新的团队。关于你的绩效问题,我觉得索引report(report\u date org\u id)
和ad\u group\u元数据(org\u id、campaign\u id、ad\u group\u id)
可能会有所帮助。但你可能已经有一个或多个both@Islingre,是的,我两个都有(解释说明)。此查询不是非常复杂的查询,它在Mysql中工作得非常有效。我想知道关于IN语句是否有一个特殊的案例或特殊的索引类型?从EXPLAIN
中,我不确定列的顺序。这可能有一些大的影响(至少对于第一个索引)。也许可以运行解释分析
,查看估计值是否与您的数据相符。也许你也会看到问题的根源是什么。毕竟,24.57的预期成本应该会带来立竿见影的效果。也许您的表的统计数据是错误的?表上的VACUUM FULL
也可能有帮助。@Islingre查询的速度非常慢。真空全效果性能也一样?显然,您为Postgres安装配置了非常少量的work\u mem
。这意味着Postgres不能使用散列聚合。但是,内存的工作量也很小,它必须在磁盘上进行排序。你的索引扫描看起来也很慢。读取大约25MB的数据需要1.3秒。您使用的是哪种硬盘?添加了“解释分析”结果。添加了“解释分析”结果。