我有一个目标表(创建为其他一些查询的输出), 在其中一个列上的简单排序导致"资源超出"错误信息。 创建的目标表有850万行和6列(大小约为567 MB)。
select col1,col2.....col6 from desttable order by col 5 desc
导致"超出资源"错误信息。
答案 0 :(得分:1)
删除ORDER BY并查看错误是否消失!
ORDER BY将WHOLE数据移动到一个worker中 - 因此超出了资源
如果我在订购后在查询中添加“LIMIT”和“OFFSET”子句 它的工作,即使LIMIT条款是最后一个被评估的。如何 它在那里工作??
添加LIMIT N时 - 在多个工作程序上运行查询。每个工作人员只获取部分数据来处理和输出相应的N行。来自所有工人的那些N行被“交付”到最终ORDER BY和LIMIT发生的一个工人并且“获胜”N行成为整个查询的输出