dev2017. 3. 20. 11:45

mysql 이 예전에는 utf8 을 3byte 로 설계했는데,
emoji 가 4byte 를 사용하기 때문에 기존의 utf8 로는 emoji 를 담을 수가 없다.


테이블 charset 을 utf8mb4 로 설정해주면 emoji 를 저장할 수 있다. (mysql 5.5.3 에 추가됨)
그렇다면 utf8mb4 를 안 쓸 이유가 있겠냐! 싶긴한데,
문서에 보면 이런 내용이 있다.


Performance of 4-byte UTF-8 (utf8mb4) is slower than for 3-byte UTF-8 (utf8). To avoid this penalty, continue to use utf8.


4byte UTF8 즉 utf8mb4 는 기존 utf8 보다 느리기 때문에 utf8 을 써라~ 라고.
emoji 를 사용할 일이 있는 테이블에 한해서만 사용하는게 좋을 것 같다.


참고
https://blog.lael.be/post/917 [MySQL/MariaDB] utf8mb4 언어셋 소개 및 표현범위.
https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-conversion.html
http://dba.stackexchange.com/questions/8239/how-to-easily-convert-utf8-tables-to-utf8mb4-in-mysql-5-5


'dev' 카테고리의 다른 글

mysql 무중단 스키마 변경 pt-online-schema-change  (0) 2017.03.21
Code Ownership - Martin Fowler  (0) 2017.03.21
CKEDITOR link 내에서 & (ampersand) 치환 이슈  (0) 2017.03.17
HATEOAS 이해  (0) 2017.02.28
python BeautifulSoup  (0) 2017.02.25