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 |