database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10301 게시물 읽기
No. 10301
locale 이 어렵네요
작성자
post
작성일
2021-11-24 18:43
조회수
94

알아볼게 있어서 locale 글을 많이 찾아봣는데요


결론은 로케일을 c 로 처음부터 주는게 맞다고 생각이 되는데 ( collate ctype 는 중도에 변경도 안되고 locale c외 사용할경우 index , like등에서 문제가 있다고 이해햇습니다  )


글을 보면 따로 locale=ko_kr.utf8 로 주는경우가 있는것같은데 다른 장점이 있는걸까요??

이 글에 대한 댓글이 총 1건 있습니다.

PostgreSQL에서 locale은 여섯가지 영역에서 자국화를 지원합니다. 

  • lc_collate
  • lc_ctype
  • lc_messages
  • lc_monetary
  • lc_numeric
  • lc_time

locale=ko_KR.utf8  

이렇게 설정된 경우, 기본적으로 위 여섯가지 설정 모두 ko_KR.utf8 을 따르게 됩니다. 

또한 이중에, lc_collate와, lc_ctype은 데이터베이스가 만들어지면 그 데이터베이스의 인코딩(utf8)과 함께 더 이상 못바꾸게 됩니다. 


문제는 lc_collate 는 like 검색에서의 인덱스 사용문제, 정렬 문제 등 데이터베이스 성능과 관련된 부분에 직접적인 영향을 미치기 때문에, 

lc_collate 값이 C 가 아닌 값으로 지정될 경우, 테이블이나, 인덱스를 만들 때 있어 응용 프로그램에서 어떻게 쿼리를 사용하느냐에 따라서 

각각 collate 값을 신경 써야합니다. 심지어  조회 쿼리를 작성할 때 조차도.

그래서, 이런 번거로움을 피하기 위해서, 

"이 데이터베이스의 collate 값은 무조건 C야" 라고 단순화 하는 것이 좋습니다. 


더 정확하게 이야기하면, 프랑스어나, 독일어같이 영어 알파벳 순서가 앞에 오고, 악센트 부호 있는 모음들이 그 뒤에 오는 것을 방지하기 위해서 부득이 C 아닌 값을 해야하는 경우도 있습니다. 하지만 한국어 환경에서는 C로 하면, 한자와 일본문자가 한글 앞에 오는 문제가 있는 것 빼고는 크게 문제되지 않기 때문에, 그냥 C로 쓰는게 편해요.


또 다른 문제는 lc_ctype 쪽인데, 이 부분은 논리복제 기능을 이용하는 경우, 두 데이터베이스의 lc_ctype 값이 같아야 문제가 생기지 않습니다. 또한 이 lc_ctype 값과 OS의 LANG 환경변수값과도 같아야합니다. (이 문제는 나중에 고쳐질지는 모르겠지만, 최근 확인한 것으로는 아직까지는 그래요)

그래서, lc_ctype 값 선택도 잘하셔야합니다. 물론 논리복제 기능을 전혀 안쓴다면 고려사항은 아니겠지만 말입니다. 


로케일 영역은 공부할게 원래 많아요. 특히 영어가 모국어가 아닌 환경에서는 말이죠. 

 

김상기(ioseph)님이 2021-11-25 18:07에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10302PgDay.Seoul 2021 온라인 행사 광고
김상기
2021-11-25
84
10301locale 이 어렵네요 [1]
post
2021-11-24
94
10300설치 관련해서 문의드립니다. [1]
불꽃놀이
2021-11-24
96
10299postgresql-12 시작 오류. 복제 체크포인트의 잘못된 매직 번호 [1]
조용욱
2021-11-21
115
10297파라미터 문의 [1]
Y0UNG
2021-11-11
261
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2021 DSN, All rights reserved.
작업시간: 0.177초, 이곳 서비스는
	PostgreSQL v13.3으로 자료를 관리합니다