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 |