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
반응형