Я имею дело с ~ 20M строкой таблицы в Postgres 10.9, в которой есть текстовый столбец, представляющий собой набор строк, разделенных запятыми. Эта таблица объединяется во многие таблицы, которые намного длиннее, и каждый раз, когда предыдущие авторы так делали, они объединяются с предложением on, равным some_other_string = Any(string_to_array(col, ','))
Я пытаюсь реализовать быструю оптимизацию, чтобы запросы выполнялись быстрее, пока я работаю над лучшее решение со следующим индексом:
Мой функциональный индекс: create index string_to_array_index on happy_table (string_to_array(col));
Тестовый запрос: select string_to_array(col, ',') from happy_table;
Когда я выполняю объяснение тестового запроса по порядку чтобы увидеть, используется ли индекс, я вижу, что это не так. Я вижу примеры функциональных индексов в строках, где они строчные или строчные или выполняют некоторые базовые операции c, как это. Работают ли функциональные индексы с string_to_array?
select a.id
from joyful_table a
join happy_table b on a.col = any(string_to_array(b.col, ','));