데이터베이스/mysql

[공유] mysql/mariadb utf8mb4 언어셋 설명

반응형

mysql 을 사용하다보면 utf8 캐릭터 셋을 자주 사용한다. 그 중에서도 여러 패키지가 존재하는데 잘 알지 못하고 사용하는 것 같다.


주로 사용하는 캐릭터 셋을 정리된 글을 공유해본다. 

핵심 부분만 정리했다. 자세한 내용은 아래 출저 페이지에가서 보면 좋은 공부가 될 것 같다.


- Mysql에서 주로 보는 Charset과 collection이 있는데 각각 문자집합과 정렬을 뜻한다.

- utf8은 1 ~ 4 바이트까지 저장할 수 있도록 설계된 가변 바이트 자료형이다.

- Mysql에서는 utf8을 3바이트 가변 자료형으로 저장한다. (chraset: utf8, collation: utf8_general_ci)

- emoji와 같은 문자는 4바이트이기 때문에 해당 필드에 저장하면 문제 발생

- Mysql 5.5.3부터 가변 4바이트가 제공되는 utf8mb4가 추가됨.

- 기존 mysql의 utf8_general_ci를 utf8mb4로 변경하는건 별 문제 없다. (같은 utf8)

- collation에서 사용되는 utf8_bin은 바이너리 저장 값 대로 정렬하고 utf8_general_ci는 라틴 계열 문자를 사람의 인식에 맞게 정렬하고 utf8_unicode_ci는 조금 더 특수하게 정렬됨.


출처

https://blog.lael.be/post/917

반응형