설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


총 게시물 187건, 최근 0 건
   

하이픈(-, hyphen) 등이 들어간 문자열의 정렬?

글쓴이 : 투정2 날짜 : 2018-03-21 (수) 13:45 조회 : 4906
예를 들어
a-a
a1a
a2a
를 엑셀에서 정렬하면
a1a
a2a
a-a
로 정렬이 돕니다.
postgresql에서 정렬하면
a-a
a1a
a2a
로 됩니다.
이게 왜 그런가 보니까 엑셀에서는 하이픈(-, hyphen), 어포스트로피(', apostrophe) 등은 무시를 한다고 합니다. 암튼 postgresql을 잘 모르는 저로서는 이것 저것 찾아보니 collate라는 명령어도 알게되었습니다.
암튼 이런 저런 조언을 찾아 보니 하이픈을 새로운 문자로 대체하여 열을 하나 만들고, 그 열로 정렬하라 였습니다.

그래서
select c1, translate(c1, '-', 'z') as c2
from t1
order by c2;
요렇게 해서 엑셀과 같은 정렬순서를 받았습니다.
"a1a""a1a"
"a2a""a2a"
"a-a" "aza"

그런데 c1의 행이 수억건이고 수억건을 정렬하여 다운로드 받을 경우 어떻게 하는게 속도에 도움이 될까 의문이 들었습니다.

1. 인서트할 때 아예 행을 하나 더 넣는다.
2. 뷰를 만들 때 행을 하나 더 넣는다.
3. 그냥 위와 같이 select 할 때 translate나 replace 함수등을 써 정렬한다.

어느 게 속도가 빠를까요? 또는 당장 수억건의 자료가 있는 것은 아닌데 어떻게 테스트할 수 있죠?

정렬할 열의 인덱스를 어떻게 하면 좋은지도 설명해 주시면 고맙겠습니다.

글 읽어 주셔서 감사합니다.

   

postgresdba.com