Здравствуйте, товарищи! Помогите пожалуйста разобраться.
Есть довольно простой скрипт. Выглядит он следующим образом:
SELECT DISTINCT("CITY" || ' | ' || "AREA" || ' | ' || "REGION") AS LOCATION FROM youtube
Таблица
youtube, которая используется в запросе состоит из 25 миллионов записей. Каждые 5 минут таблица пополняется новыми данными. Данный скрипт отрабатывается очень долго (~50 секунд).
EXPLAIN ANALYZE возвращает следующее:
![5c08ad6f72b89825570616.png](https://habrastorage.org/webt/5c/08/ad/5c08ad6f72b89825570616.png)
Я пытаюсь ускорить запрос. Добавил индекс следующим образом:
CREATE INDEX location_index ON youtube ("CITY", "AREA", "REGION")
После добавление индекса запрос не ускорился. Возможно в самом запросе нужно явно указать, чтобы использовался индекс. Как это сделать в PostgreSQL? Знаю, что к примеру в MySQL для этого используется
FORCE INDEX. Есть ли вообще смысл в индексе или партиционирование раз в запросе не используется
WHERE.