У меня есть таблица в PostgreSQL, она имеет 20 столбцов, которые в основном имеют тип enum.И в этой таблице миллионы строк.
Я бы хотел поддерживать и ускорять запросы, ищущие строки с несколькими полями, например: col2=value1&col3=value2&col5=value3 page=1
Я не могу использовать составной индекс PostgreSQL, потому что он работает только сфиксированный порядок столбцов.Например, если я строю индекс на (col2,col3,col5)
, то он не может быть использован для запросов, ищущих col1=value1&col2=value2
. И я также хотел бы поддерживать такие запросы, как:
col1=value1&col2=(value3 or value4) orderby=col3 page=1
Каким было бы решение этой проблемы?И если мне не нужен полнотекстовый поиск по любому из этих столбцов (поскольку все они являются перечисляемыми типами), может ли решение быть легким?