CHARACTER SET utf8mb4
는 MySQL에서 데이터를 저장할 때 사용하는 문자 인코딩 방식을 정의합니다.
문자셋 | 최대 바이트 | 이모지 지원 | 설명 |
---|---|---|---|
utf8 | 3바이트 | ❌ | 일부 유니코드 문자만 지원 |
utf8mb4 | 4바이트 | ✅ | 모든 유니코드 문자 지원 |
참고: MySQL의 utf8은 실제로 완전한 UTF-8이 아니라 3바이트로 제한된 UTF-8 구현체입니다.
COLLATE utf8mb4_unicode_ci
는 문자열을 비교하고 정렬하는 방식을 정의합니다.
ci
는 'case-insensitive'의 약자입니다.콜레이션 | 대소문자 구분 | 속도 | 특징 |
---|---|---|---|
utf8mb4_general_ci | ❌ | 빠름 | 단순하지만 일부 언어 특성 무시 |
utf8mb4_unicode_ci | ❌ | 보통 | 정확한 유니코드 비교 규칙 준수 |
utf8mb4_bin | ✅ | 빠름 | 바이너리 비교(바이트 단위 완전 일치) |
utf8mb4_general_cs | ✅ | 보통 | 대소문자 구분 일반 비교 |
utf8mb4_unicode_ci는 유니코드 정렬 규칙을 따르므로 다음과 같은 특별한 비교가 가능합니다: