프리랜서 웹디자이너 무료폰트 RELATION.CO.KR

RELATION 로고

PHP 웹프로그래밍

[기타] utf8_unicode_ci,utf8_general_ci차이

2012.10.04
MySQL의 collation을 별생각없이 계속 utf8_general_ci 를 사용하다가 오늘 어느분께서 utf8_unicode_ci로 된 script를 보내셔서 차이점을 조사해 봤습니다.

일단 결론부터 말하자면


So when you need better sorting order - use utf8_unicode_ci,
and when you utterly interested in performance - use utf8_general_ci.


라고 합니다.

utf8_general_ci 는 accents(예, ÀÁÅåāă)가 없으며 그것들은 해당 단어의 대문자(앞의 예제의 경우 'A')로 변환한답니다.

이 렇게 모든 경우를 대문자로 변환하는 경우, 문자 비교시에 소문자보다는 작게 되므로 정렬이 정확히 이루지지 않습니다. 즉, 'ÀÁÅåāă'는 모두 'a'와 같으므로 정렬 비교시에 swap되지 않을 것이며, 'åāă'는 대문자 'A'와 같은 순서에 나오게 되는 것이죠.

accent 문자까지 정확하게 정렬해야 되는 경우가 아니면, 속도를 위해서 utf8_general_ci를 쓰는게 좋습니다.

자세한 내용은 http://forums.mysql.com/read.php?103,187048,188748#msg-188748을 참조해주세요.

이 포스트 공유하기

글수정  글삭제 전체목록