DB/MySQL
[MariaDB] 'utf8mb4_uca1400_ai_ci', 'utf8mb4_general_ci' CALLTE 간의 차이점은?
채윤아빠
2024. 9. 9. 08:26
'utf8mb4_uca1400_ai_ci'와 'utf8mb4_general_ci'의 차이점
1. 표준 및 알고리즘 차이
utf8mb4_uca1400_ai_ci
는 Unicode Collation Algorithm(유니코드 정렬 알고리즘) 14.0.0 버전을 기반으로 한 최신 콜레이션utf8mb4_general_ci
는 MariaDB/MySQL에서 오래전부터 사용된 일반적인 콜레이션으로, 유니코드 표준을 완전히 따르지 않고, 비교적 단순한 방식으로 문자열 비교
2. 언어 및 문자 지원 정확도
utf8mb4_uca1400_ai_ci
는 유니코드 표준에 따라 다양한 언어와 문자, 특수문자, 이모지까지 더 정확하게 비교 및 정렬utf8mb4_general_ci
는 일부 언어나 특수문자(예: 독일어 ß와 ss, 악센트 문자 등)에 대해 정확한 비교·정렬을 보장하지 않으며, 단순한 문자 일대일 비교 방식
3. 성능
utf8mb4_general_ci
는 비교적 단순한 연산을 사용해 빠른 성능 제공utf8mb4_uca1400_ai_ci
는 더 복잡한 유니코드 표준을 적용하므로, 성능은 약간 떨어질 수 있지만, 그만큼 정확도가 높음
4. 대소문자/악센트 구분
- 두 콜레이션 모두
ci
(case-insensitive)와ai
(accent-insensitive)를 의미해, 대소문자와 악센트를 구분하지 않음
5. 적용 및 호환성
- MariaDB 11.4.2부터 기본 콜레이션이
utf8mb4_general_ci
에서utf8mb4_uca1400_ai_ci
로 변경 - 최신 MariaDB에서는 더 정확한 문자 처리를 위해 UCA 기반 콜레이션 권장
정리
구분 | utf8mb4_uca1400_ai_ci | utf8mb4_general_ci |
---|---|---|
표준 | Unicode Collation Algorithm 14.0.0 | MariaDB/MySQL 일반 알고리즘 |
문자/언어 지원 | 유니코드 최신 표준, 폭넓고 정확함 | 일부 언어/문자 지원 한계 |
성능 | 상대적으로 느림(정확도↑) | 상대적으로 빠름(정확도↓) |
대소문자/악센트 구분 | 구분하지 않음 | 구분하지 않음 |
MariaDB 최신 기본값 | O | X |
맺는말
정확한 다국어·특수문자·이모지 비교와 정렬이 필요하다면 utf8mb4_uca1400_ai_ci
를, 성능이 더 중요하고 단순 비교면 충분하다면 utf8mb4_general_ci
를 선택하면 됩니다.
728x90
반응형