Есть запрос:
SELECT region,
COUNT(*) as total,
COUNT(*) FILTER (WHERE t1.insert_status = 'success' ) as completed,
COUNT(*) FILTER (WHERE t1.insert_status IS NULL AND t1.insert_status IS NULL ) as waiting,
COUNT(*) FILTER (WHERE t1.insert_status = 'failed' ) as insert_failed
FROM xml_files_2 t1
WHERE t1.section_name = 'payments' AND
t1.processed_date >='2010-01-28' AND t1.processed_date <='2021-08-28'
GROUP BY region;
В тестовой выборке 300 тыс файлов. Запрос выполняется за 0.5 секунды.
Выставляю одиночные индексы для всех полей запроса. Запрос продолжает выполняться 0.5 секунды.
Делаю композитный индекс в который входят все поля запроса -- время выполнение падает до 0.22 секунд.
Вопрос. Почему с индексами и без разницы никакой? И почему только композитные индексы сработали?
Если что данные на очень быстром SSD накопителе. Может ли быть так, что PG из-за этого индексы не использует?