LIMITとORDERBYの両方がある場合、オプティマイザーは、残りの基準で5つの一致が得られるまで、キーを降順でfooのフィルター処理されていないレコードをリンプする方が速いと判断しました。それ以外の場合は、クエリをネストされたループとして実行し、すべてのレコードを返します。
問題は、PGがジョイントを動かさないことだと思います。 さまざまなIDの配布であり、それが計画が最適ではない理由です。
考えられる解決策について:最近ANALYZEを実行したと仮定します。そうでない場合は、そうしてください。それはあなたの推定時間が速く戻るバージョンでさえ高い理由を説明するかもしれません。問題が解決しない場合は、おそらくORDER BYを副選択として実行し、外部クエリでLIMITを叩きます。