У меня есть запрос, который я пытаюсь оптимизировать для 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)
Стоимость составляет 58 000 с таблицей с 1 190 000 строк, хотя план выполнения тот же.
a m
? Опечатка? должно бытьselect coalesce(max(id),0) AS m from tbl
- person wildplasser   schedule 13.01.2013