Как ускорить запрос с DISTINCT в PostgreSQL?
Составной индекс по полям - это не то же самое, что индекс по конкатенированному значению этих полей. Соответствующий индекс должен создаваться такCREATE INDEX youtube_location_idx ON youtube ((CITY || ' | '  || AREA || ' | ' || REGION));
Но ещё лучше пересмотреть подход к структуре таблицы и запросов.
Должно помочь избавление от конкатенации. SELECT DISTINCT CITY,  AREA, REGION FROM youtube
илиSELECT CITY,  AREA, REGION
FROM youtube
GROUP BY CITY,  AREA, REGION
Если сильно нужно получать именно конкатенированный результат, то подзапрос все-равно будет быстрееSELECT  "CITY" || ' | '  || "AREA" || ' | ' || "REGION" FROM (
    SELECT CITY,  AREA, REGION
    FROM youtube
    GROUP BY CITY,  AREA, REGION) t