MySQL에서 utf8mb4_0900_ai_ci와 utf8mb4_unicode_ci는 둘 다 utf8mb4 문자셋을 사용하는 대소문자 무시(_ci: case-insensitive) 비교(collation) 방식이지만, 주요한 차이점이 있습니다.
🔹 utf8mb4_unicode_ci
- MySQL 5.5+ 버전에서 사용되는 표준 유니코드 정렬 방식
- Unicode 4.0 기준으로 정렬 및 비교 수행
- 일부 문자(예: 이모지, 특수 문자)에 대한 정렬이 최신 유니코드 표준과 다를 수 있음
✅ 특징:
- MySQL 5.5부터 제공되며 널리 사용됨
- 성능은 utf8mb4_general_ci보다는 느리지만 정확함
- 최신 유니코드 규칙을 반영하지 못할 수 있음
🔹 utf8mb4_0900_ai_ci
- **MySQL 8.0+**에서 제공하는 새로운 유니코드 정렬 방식
- Unicode 9.0 기준으로 정렬 및 비교 수행
- AI (Accent-Insensitive): 악센트 무시 (é == e)
- CI (Case-Insensitive): 대소문자 무시 (A == a)
- 성능이 개선되었으며 더 정확한 유니코드 정렬을 지원
✅ 특징:
- MySQL 8.0 이상에서 권장됨
- 최신 유니코드 표준을 반영하여 더 정확한 정렬 방식 제공
- 성능 최적화됨
🔹 정리 (비교)
비교 항목utf8mb4_unicode_ciutf8mb4_0900_ai_ci
MySQL 버전 | 5.5 이상 | 8.0 이상 |
유니코드 버전 | 4.0 | 9.0 |
대소문자 구분 | 안 함 | 안 함 |
악센트 구분 | 옵션 가능 (utf8mb4_unicode_cs 사용) | 안 함 (ai는 Accent-Insensitive) |
이모지 지원 | 일부 제한 있음 | 더 정확한 비교 가능 |
정렬 정확도 | 상대적으로 낮음 | 최신 표준 적용 |
📌 MySQL 8.0 이상을 사용한다면 utf8mb4_0900_ai_ci를 권장
📌 MySQL 5.7 이하에서는 utf8mb4_unicode_ci를 사용