[Collation] UTF8 charset & collation 비교
·
MySQL
UTF8 VS UTF8MB4 영어 등 서구권 언어: 1글자당 1byte 한글 등 아시아권 언어: 1글자당 2byte UTF-8: 1글자당 1~3byte(가변적) utf8mb4: 가변 4byte utf-8 charset 다국어를 지원하기 위해 1~3 가변바이트 charset utf-8이 주로 사용되어왔다. 그러나 emoji 등 새로 개발된 언어는 글자당 4바이트를 차지하므로, 해당 charset으로 설정되어있는 경우 글자가 깨지는 현상이 발생한다. 따라서 mySQL 5.5 이후 버전부터는 utf8mb4 charset을 지원하면서 최대 4바이트까지 문자를 저장할 수 있도록 하고 있다😄 검색이나 로그인 등 다양한 경우에서 대소문자 구분 여부는 중요하다. 예를 들어, 회원가입 시 비밀번호 설정 부분에서는 대/소..
[data type]CHAR형의 pad_char_to_full_length 옵션과 VARCHAR형 비교
·
MySQL
Mysql document를 읽던 도중 PAD_CHAR_TO_FULL_LENGTH 옵션에 대해 알게 되었다. 고정길이 문자형 변수를 저장하는 CHAR타입 컬럼에 이 옵션을 disable시키면, VARCHAR타입과 같이 남은 공간을 space가 아닌 null로 처리해주는 옵션이었다. (default로 활성화되어있는 변수이기 때문에, CHAR타입의 길이보다 적게 데이터를 입력하면 알아서 space처리가 된다.) 그렇다면 VARCHAR형과 같은 데이터 타입인데.. 굳이 이 옵션을 만들어서 둘을 구분해 둔 이유가 궁금해서 테스트를 진행해 보았다. 테스트 환경은 macOS Catalina 10.15, MySQL 5.7 버전을 사용하였다. char type 우선 PAD_CHAR_TO_FULL_LENGTH = dis..
erin.yoon