|
|
1
2
此查询的任何查询计划都必须扫描与where条件匹配的每一行,并按分组条件进行汇总,即工作量与group by的输入行数成比例,而不是结果行数。 对于这样的查询,最有效的查询计划可能是单索引扫描。如果按此顺序在(country,ts)上构建索引,则应该可以这样做;使用该索引,此表单的每个可能查询都解析为索引上的连续范围。不过,这仍然需要一个内存中的排序——使用不同的索引可能可以避免这种情况。 不过,正如其他人所说,发布执行计划是您的最佳选择。 |
|
|
2
1
为了能够提出任何建议,您应该发布查询的执行计划。 而“omg-ponies”是对的:限制100会将总结果限制为100行,它不会对单个组起作用! Postgres wiki中有一篇很好的文章解释了如何发布与慢速查询相关的问题: |
|
|
3
1
(国家,TS)的指数是最好的选择(就像尼克·约翰逊建议的那样),另外,你可能想提高 work_mem 如果不是很高。如果需要,可以在运行时设置(如果设置得很高,则建议设置)。它将有助于将您的分类保存在内存中,而不会溢出到磁盘(如果发生这种情况的话)。 为了获得真正的帮助,我们需要 EXPLAIN ANALYZE ,在explain.depesz.com上发布可以使其非常可读。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 8 月前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 9 月前 |
|
ojek · 如何对SQL结果进行分组和编号? 9 月前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 9 月前 |
|
|
Sax · 规范化Google表格(第一步) 9 月前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 9 月前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 9 月前 |