лишь, но выполняется 669,872 мс все равно...
Запрос:
SELECT COUNT(a0_.id) AS sclr_0 FROM appointments a0_ WHERE a0_.deleted = false;
EXPLAIN (ANALYZE,BUFFERS):
https://explain.depesz.com/s/NqYr
Причем создал индекс:
CREATE INDEX deleted_partial_index ON appointments (deleted) WHERE deleted = FALSE;
Но время выполнения большое:
SELECT COUNT(a0_.id) AS sclr_0 FROM appointments a0_ WHERE a0_.deleted = false;
sclr_0
--------
833060
(1 строка)
Время: 669,872 мс
Мб настройки сервера херовые?
Может, и настройки (но я бы сильно не надеялся)... Если действительно "в таблице 800к строк всего", и почти все они NOT DELETED, индекс тут почти наверняка не поможет, кстати. Можно разве что вот на это: Buffers: shared hit=365 read=66019 посмотреть. Т.е. на настройку shared_buffers. Этот instance вообще настраивался ранее (что про него выдают конфигураторы типа http://pgtune.leopard.in.ua/ или http://pgconfigurator.cybertec.at/ по сравнению с текущими настройками)?
Индекс не поможет, запрос не селективный
count(*) чуточку лучше использовать , но это врят ли измеримо
Analyze запустить может помочь
попробуйте дать больше памяти и включить параллельные запросы. мб просто запрос ускорится, но сложность не изменится
Обсуждают сегодня