2016-11-24 3 views
0


저는 Postgres DB를 사용하고 있으며 여러 개의 varchar 열이있는 MyObjects이라는 표가 있습니다. 값은 분리 된 단어가 아닙니다 (예 : URL, 이름 등). 이 열에 따라 많이 필터링됩니다. 특정 단어가 값의 시작, 중간 또는 끝에서 일치 함을 검색합니다. 테이블 자체가 커지지 않습니다 (처음에 행 수가 n * 10^3 정도가되지만 n * 10^5 행 정도가됩니다) 이 경우 인덱스가 필요합니까 ? 그렇다면 어떤 종류의 색인을 제안합니까?
감사합니다.BTREE 대 GIN 대 GIST 색인

답변

0

WHERE col LIKE '%string%'과 같이 검색 패턴을 도울 수있는 색인을 찾으려면 pg_tgrm을 사용하는 GIN 또는 GiST 색인 만 선택할 수 있습니다.

이러한 인덱스는 매우 커질 수 있으며 짧은 하위 문자열을 검색하면 많은 도움이되지 않습니다.

그런 색인이 귀하의 경우에 순차적 테이블 스캔보다 이점을 가져다 주는지 확인하려면 시도해보십시오. – 일반적으로 대답 할 수 없습니다.