검색 할 수있는 10 개의 열이있는 표가 있습니다 (표 자체에는 약 20 개의 열이 있음). 따라서 사용자는 적어도 하나의 열에 대해 쿼리 조건을 입력하지만 가능한 열 모두에 대해 쿼리 조건을 입력합니다. 모든 비어 있지 않은 기준은 다음과 상태에 넣고Postgres의 여러 varchar 열에 가장 적합한 색인 전략
, 컬럼 및 column4에 대한 사용자 제공 비어 있지 않은 조건을 가정하고 쿼리가 될 것 column8 :
이select * from the_table
where column1 like '%column1_query%'
and column4 like '%column4_query%'
and column8 like '%column8_query%'
그래서 내 질문은 : 더 나은 I 오전 10 컬럼으로 1 인덱스 생성? 각 열이 1 개인 10 개의 색인? 또는 어떤 열 집합이 자주 함께 쿼리되는지 확인하고 인덱스를 생성해야합니다 (위의 경우 열 1,4 및 8의 인덱스).
10 개 열의 단일 색인은 모든 10 개 열이 조건에있는 경우에만 효과적입니다.
여기에 제안 사항이 있으면 테이블의 행 개수가 약 20-30K 행만 될 것으로 예상되지만 테이블의 모든 검색이 빠르다는 것을 확인하고 싶습니다.
감사합니다.