History
- 사프 작업 도중, varchar의 charset이 UTF8MB4로 되어 있는 것을 확인하여서 UTF8MB4이 무엇인지 궁금해졌다.
Result
- 가변 길이 인코딩 방식
- 정의 : 문자 또는 데이터 단위는 일반적으로 사용 빈도나 복잡성에 따라 표현을 위해 다양한 양의 비트 또는 바이트를 사용한다.
- 고정 길이 인코딩 방식
- 정의 : 모든 문자 또는 데이터 단위는 고정된 수의 비트 또는 바이트로 인코딩된다.
- UTF-8
- 정의 : 4 bytes로 문자를 표현하는 가변 길이 문자 인코딩 방식
- UTF8MB3
- UTF-8의 초기 버전
- 최대 3바이트까지만 문자를 인코딩할 수 있어 일부 유니코드 문자를 표현할 수 없다.
- UTF8MB4 (권장)
- UTF-8의 확장 버전
- 모든 유니코드 문자를 표현할 수 있도록 최대 4바이트까지 문자를 인코딩할 수 있다.
- 이모지 같은 4바이트 문자도 저장할 수 있어서 MySQL 5.5.3 이후 버전에서는 UTF-8의 구현으로 권장
- UTF-16
- 가변 길이 인코딩 방식
- 대부분의 유니코드 문자를 2바이트로, 추가 문자는 4바이트로 인코딩한다.
- MySQL은 기본적으로 UTF-16을 직접적으로 지원하지 않는다.
- UTF-16LE
- UTF-16의 변형으로 'Little Endian' 바이트 순서를 사용한다.
- 일반적으로 MySQL에서 직접 사용되지 않고 파일 시스템이나 네트워크 프로토콜에서 주로 사용된다.
- UTF-32
- 모든 유니코드 문자를 4바이트로 인코딩하는 고정 길이 인코딩 방식
- UTF-32는 데이터베이스에서 문자를 저장하는 데 필요한 공간이 많기 때문에 일반적으로 사용되지 않는다.