PostgreSQL 9.2 用に最適化しようとしているクエリがあります。
select coalesce(max(id),0) as m from tbl
実行するには永遠に時間がかかるので、次のように書き換えることができると考えました
select id from tbl order by id desc limit 1
ただし0
、テーブルに行がない場合は返す必要があります。case ステートメントの組み合わせをいくつか試しましたが、うまくいかないようです。助言がありますか?
空のテーブルを計画します。
Aggregate (cost=11.25..11.26 rows=1 width=4)
-> Seq Scan on tbl (cost=0.00..11.00 rows=100 width=4)
コストは 1,190,000 行のテーブルで 58k ですが、実行プランは同じです。