create index idx_j1_str on j1 (left(str1,5));
하지만 저는 Postgres에서 이와 같은 것이 필요하다고 생각하지 않습니다. 단지 str1
에 색인은 아마 다재다능하다. 물론 이것은 당신이 실행 한 쿼리에 크게 의존합니다. 우리에게 보여주지 않았기 때문에 실제로 필요한 인덱스의 종류는 말할 수 없습니다.
는 포스트 그레스에서 함수 기반 인덱스를 사용하려면 쿼리가 인덱스에 사용 된 것과 동일한 표현을 포함해야합니다 (및 지원 기본적으로 다른 DBMS) :
select *
from j1
where left(str1,5) = '1234'
위를 사용합니다 인덱스 (테이블이 충분히 크고 조건이 전체 결과를 실질적으로 감소시키는 경우). 또한 수 (left(str1,5) = '1234'
에 해당)
select *
from j1
where str1 like '1234%'
만 : 해당 컬럼에 일반 인덱스를 작성하는 경우
: 다음
create index idx_j1_str on j1 (str1 varchar_pattern_ops);
을 그것은 같은 것을 사용할 수 있습니다 사용 대상 :
select *
from j1
where str1 like '1234678%'
와일드 카드를 사용하는 다른 접두어 검색이 있습니다.
"str1 텍스트, 키 idx_str1_prefix5 (str1 (5)) ..."와 같이 mysql에 열이있는 테이블을 가지고 있기 때문에. 아무 것도 변경하지 않고 postgresql로 마이그레이션하려고합니다. –