각 사용자의 이름이 유니 코드 인 users 테이블이있는 postgresql 데이터베이스가 있습니다. 적어도 한 히브리어 문자가 포함 된 모든 사용자를 찾고 싶습니다. 나는 regex을 사용하여 생각했습니다.히브리어 이름을 가진 모든 레코드 찾기
select * from users
where name ~ '[א-ת]';
정규식보다 효율적인 방법이 있습니까? 이름 열에 B- 트리 색인이 있습니다. 디스크 크기 대하여 @FuzzyTree
B-tree GIST GIN
user 0.04 0.04 0.03
sys 0.02 0.04 0.01
total 0.06 0.08 0.04
의해 suggested로 pg_trgm
모듈과 다른 인덱스를 사용
업데이트
는 진 인덱스 GIST 하나의 0.2 배 및 0.8 배이며 B- 나무. 그래서, 적어도 유스 케이스에 대해서는 승자가 있습니다. YMMV (예 : 색인 생성 및 업데이트를 벤치마킹하지 않은 경우) 버전 : postgres 9.6.
이상 2K 담당자와, 어서보고, 당신은 우리가 원하는 이미해야하는지 당신은 당신이 몇 가지 코드 조각을 제공 할 때 더 유용한 답변을 얻을 가능성이있다. – Jan
@Jan, 무엇을위한 스 니펫? 나는 무엇을 어떻게 *해야하는지보다는 * 무엇을해야하는지 묻고있다. 도움이된다면 현재 정규 표현식 코드의 스 니펫을 추가 할 수 있습니다. – dimid