utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까?
mysql 데이터베이스에 유망해 보이는 유니코드 옵션이 두 가지 있습니다.
utf8_general_ci unicode (multilingual), case-insensitive
utf8_unicode_ci unicode (multilingual), case-insensitive
utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까?데이터베이스를 설계할 때 하나를 선택하면 어떤 효과가 있습니까?
utf8_general_ci
는, Unicode 의 매우 심플하고, Unicode 의 매우 파손된 조합으로, 일반적인 Unicode 텍스트에 대해서 잘못된 결과를 나타내고 있습니다.기능:
- 표준 분해를 위해 Unicode 정규화 양식 D로 변환
- 조합된 문자를 삭제합니다.
- 대문자로 변환하다
Unicode에서는 Unicode 대소문자가 인식되지 않기 때문에 Unicode에서는 올바르게 동작하지 않습니다.유니코드 케이스만 해도 ASCII를 중시하는 접근방식보다 훨씬 복잡합니다.예를 들어 다음과 같습니다.
- 「ß」의 소문자는 「"」이지만, 「"」의 대문자는 「SS」입니다.
- 두 개의 소문자 그리스 시그마가 있지만 대문자 시그마는 하나뿐입니다. "그리스 시그마"를 고려하십시오.
- """와 같은 문자는 "o"와 분음 기호로 분해되지 않으며, 이는 올바르게 정렬되지 않음을 의미합니다.
다른 많은 미묘함이 있다.
utf8_unicode_ci
는 표준 Unicode 대조 알고리즘을 사용하여 이른바 확장 및 연결을 지원합니다.예를 들어 독일어 문자 ((U+00DF 문자 SHARP S)는 "ss" 문자 u(U+0152 LATIN 대문자 LIGATURE OE) 근처에 정렬됩니다.
utf8_general_ci
는 확장/리거처를 지원하지 않습니다.이러한 모든 문자를 단일 문자로 정렬하고 경우에 따라서는 잘못된 순서로 정렬하는 경우가 있습니다.
utf8_unicode_ci
는 일반적으로 모든 스크립트에 대해 더 정확합니다.예를 들어, 키릴 블록의 경우:utf8_unicode_ci
이 모든 언어에 대응합니다.러시아어, 불가리아어, 벨라루스어, 마케도니아어, 세르비아어, 우크라이나어.단, utf8_general_ci는 키릴 문자의 러시아어와 불가리아어 서브셋에만 적합합니다.벨라루스어, 마케도니아어, 세르비아어, 우크라이나어에서 사용되는 추가 문자는 잘 분류되지 않습니다.
비용utf8_unicode_ci
조금 느리다는 것입니다.utf8_general_ci
하지만 정확성을 위해 지불하는 대가입니다.즉석에서 틀린 답을 얻을 수도 있고, 매우 느린 답을 얻을 수도 있습니다.당신의 선택이다.틀린 답을 하는 것을 정당화하는 것은 매우 어렵기 때문에, 가장 좋은 것은 다음과 같습니다.utf8_general_ci
하지 않습니다입니다.utf8_unicode_ci
틀린 답을 원하신다면요
출처 : http://forums.mysql.com/read.php?103,187048,188748#msg-188748
MySQL 문서의 Unicode 문자 집합에서 다음을 수행합니다.
세트에 , Unicode 를 .
_general_ci
._unicode_ci
「」, 「」의 등입니다.utf8_general_ci
조금 덜 정확합니다.utf8_unicode_ci
★★★★★★★★★★★★★★★★★★★★★★★★」utf8_unicode_ci
는 확장 등의 매핑을 지원합니다.즉, 어떤 문자가 다른 문자의 조합과 동등한 경우입니다.들어 및 에서는 "이러한 언어를합니다.ß
는 '아니다'와.ss
"utf8_unicode_ci
는 축소와 무시할 수 없는 문자도 지원합니다.utf8_general_ci
는 확장, 축소 또는 무시할 수 없는 문자를 지원하지 않는 레거시 조합입니다.문자 간 일대일 비교만 가능합니다.
언급URL : https://stackoverflow.com/questions/1036454/what-are-the-differences-between-utf8-general-ci-and-utf8-unicode-ci
'source' 카테고리의 다른 글
MySQL Workbench에서 전체 데이터베이스 스크립트를 생성하는 방법 (0) | 2022.12.24 |
---|---|
Django 1.10 및 Python 3.5에서 MariaDB 사용 (0) | 2022.12.24 |
관계가 없는 2개의 테이블에서 선택 (0) | 2022.12.24 |
MySQL에서 다른 테이블과 일치하는 테이블을 생성하시겠습니까? (0) | 2022.12.24 |
모키토 슈퍼클래스의 메서드 호출만을 조롱하는 방법 (0) | 2022.12.24 |