1

評価されるたびにテーブル全体をスキャンする where 句にサブクエリがあります。

SELECT k, j
FROM tab t1     
WHERE t1.x > (SELECT AVERAGE(x) FROM tab t2 where t1.n = t2.n)
order by k, j 
limit 100;

サブクエリの最後に OFFSET 0 を追加しても、クエリ プランに変更はありません。

SELECT k, j
FROM tab t1     
WHERE t1.x > (SELECT AVERAGE(x) FROM tab t2 where t1.n = t2.n OFFSET 0) 
order by k, j
limit 100; 

この投稿を参照してください。この場合、where 句で最適化フェンス「OFFSET 0」は機能しませんか?

4

1 に答える 1