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