문서번호 : 11-762852
Document Information
•
최초 작성일 : 2022.06.07
•
최종 수정일 : 2022.06.07
•
이 문서는 아래 버전을 기준으로 작성되었습니다.
◦
SinglestoreDB : 7.8
Goal
•
SingleStore DB가 지원하는 캐릭터셋 및 콜레이션 목록 보는 방법을 알아본다.
Solution
1. 지원하는 캐릭터셋(character set) 목록 보기
•
명령어
singlestore> show character set;
-- 다음과 같이 SELECT를 통해서도 가능하며, 비슷한 결과이므로 이문서에서는 다루지 않음
singlestore> SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS WHERE CHARACTER_SET_NAME = 'utf8mb4';
SQL
복사
•
실행 결과
+---------+-----------------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+-----------------------+--------------------+--------+
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| binary | Binary pseudo charset | binary | 1 |
+---------+-----------------------+--------------------+--------+
3 rows in set (0.00 sec)
SQL
복사
•
실행 결과 설명
◦
컬럼 설명
컬럼명 | 설명 |
Charset | 캐릭터셋 명, 설정 값으로 사용 |
Default collation | 이 캐릭터셋으로 설정시 자동으로 변경되어지는 기본 콜레이션 |
Maxlen | 해당 캐릭터셋 1문자가 차지하는 최대 사이즈, utf8mb4의 경우 BMP외 문자일 경우 4byte 까지 차지 |
◦
Charset 값 설명
▪
binary
•
문자열을 이진(binary)으로 저장
•
Default collation : binary
▪
utf8 (utf8mb3 의 별칭)
•
문자당 1~3byte를 사용하여 문자를 인코딩하는 유니코드 캐릭터셋
•
BMP내 문자 인코함
•
Default collation : utf8_general_ci
▪
utf8mb4
•
문자당 1~4byte를 사용하여 문자를 인코딩하는 유니코드 캐릭터셋
•
BMP내 캐릭터셋 + 이모지(emoji), 고대문자, 이집트 상형문자 + BMP 외부 보조 캐릭터셋 모두 인코딩
•
Default collation : utf8mb4_general_ci
BMP(Basic Multilingual Plane)란? 유니코드 기본 문자 65,536개에 대해 코드를 정의한 플레인(테이블)
2. 지원하는 콜레이션(collation) 목록 보기
•
명령어
singlestore> show collation;
-- 다음과 같이 SELECT를 통해서도 가능하며, 비슷한 결과이므로 이문서에서는 다루지 않음
singlestore> SELECT * FROM INFORMATION_SCHEMA.COLLATIONS WHERE CHARACTER_SET_NAME = 'utf8mb4';
SQL
복사
•
실행 결과
+-----------------------+---------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-----------------------+---------+-----+---------+----------+---------+
| utf8_general_ci | utf8 | 33 | Yes | Yes | 1 |
| utf8_bin | utf8 | 83 | | Yes | 1 |
| utf8_unicode_ci | utf8 | 192 | | Yes | 8 |
| utf8_icelandic_ci | utf8 | 193 | | Yes | 8 |
| utf8_latvian_ci | utf8 | 194 | | Yes | 8 |
| utf8_romanian_ci | utf8 | 195 | | Yes | 8 |
| utf8_slovenian_ci | utf8 | 196 | | Yes | 8 |
| utf8_polish_ci | utf8 | 197 | | Yes | 8 |
| utf8_estonian_ci | utf8 | 198 | | Yes | 8 |
| utf8_spanish_ci | utf8 | 199 | | Yes | 8 |
| utf8_swedish_ci | utf8 | 200 | | Yes | 8 |
| utf8_turkish_ci | utf8 | 201 | | Yes | 8 |
| utf8_czech_ci | utf8 | 202 | | Yes | 8 |
| utf8_danish_ci | utf8 | 203 | | Yes | 8 |
| utf8_lithuanian_ci | utf8 | 204 | | Yes | 8 |
| utf8_slovak_ci | utf8 | 205 | | Yes | 8 |
| utf8_spanish2_ci | utf8 | 206 | | Yes | 8 |
| utf8_roman_ci | utf8 | 207 | | Yes | 8 |
| utf8_persian_ci | utf8 | 208 | | Yes | 8 |
| utf8_esperanto_ci | utf8 | 209 | | Yes | 8 |
| utf8_hungarian_ci | utf8 | 210 | | Yes | 8 |
| utf8_sinhala_ci | utf8 | 211 | | Yes | 8 |
| utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 |
| utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 |
| utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 |
| utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes | 8 |
| utf8mb4_latvian_ci | utf8mb4 | 226 | | Yes | 8 |
| utf8mb4_romanian_ci | utf8mb4 | 227 | | Yes | 8 |
| utf8mb4_slovenian_ci | utf8mb4 | 228 | | Yes | 8 |
| utf8mb4_polish_ci | utf8mb4 | 229 | | Yes | 8 |
| utf8mb4_estonian_ci | utf8mb4 | 230 | | Yes | 8 |
| utf8mb4_spanish_ci | utf8mb4 | 231 | | Yes | 8 |
| utf8mb4_swedish_ci | utf8mb4 | 232 | | Yes | 8 |
| utf8mb4_turkish_ci | utf8mb4 | 233 | | Yes | 8 |
| utf8mb4_czech_ci | utf8mb4 | 234 | | Yes | 8 |
| utf8mb4_danish_ci | utf8mb4 | 235 | | Yes | 8 |
| utf8mb4_lithuanian_ci | utf8mb4 | 236 | | Yes | 8 |
| utf8mb4_slovak_ci | utf8mb4 | 237 | | Yes | 8 |
| utf8mb4_spanish2_ci | utf8mb4 | 238 | | Yes | 8 |
| utf8mb4_roman_ci | utf8mb4 | 239 | | Yes | 8 |
| utf8mb4_persian_ci | utf8mb4 | 240 | | Yes | 8 |
| utf8mb4_esperanto_ci | utf8mb4 | 241 | | Yes | 8 |
| utf8mb4_hungarian_ci | utf8mb4 | 242 | | Yes | 8 |
| utf8mb4_sinhala_ci | utf8mb4 | 243 | | Yes | 8 |
| binary | binary | 63 | Yes | Yes | 1 |
+-----------------------+---------+-----+---------+----------+---------+
45 rows in set (0.00 sec)
SQL
복사
•
실행 결과 설명
◦
컬럼 설명
컬럼명 | 설명 |
Collation | 콜레이션 명, 설정 값으로 사용 |
Charset | 이 콜레이션을 사용할 수 있는 캐릭터셋 |
Id | 콜레이션의 고유한 ID, 사용자 정의 콜레이션 추가시 1024~2047 사이 값 사용 |
Default | 캐릭터셋에서의 기본 설정 여부 |
Sortlen | 주어진 캐릭터셋의 문자열을 정렬하는 데 필요한 메모리 양(바이트) |
◦
콜레이션 설명
▪
명명 규칙 : 캐릭터셋명 + 언어명 + 콜레이션 속성 접미사
▪
접미사 목록
접미사 | 확장명 | 설명 |
_ai | accent-insensitivity | 악센트를 구분하지 않음 (’O’, 'Ò’는 같음) |
_as | accent-sensitivity | 악센트를 구분함 |
_ci | case-insensitivity | 대소문자를 구분하지 않음 (’A’ 와 ‘a’는 같음) |
_cs | case-sensitivity | 대소분자를 구분함 |
_bin | binary | 비이진 캐릭터(char, varchar, text)일때는 멀티바이트 캐릭터의 바이트 값이 아닌 캐릭터 코드 값을 기반으로 비교함
* 주의) 아래, binary와는 다름 |
▪
binary : binary 캐릭터셋의 유일한 기본 콜레이션, 무조건 바이트 값으로 비교함
References
History
일자 | 작성자 | 비고 |
2022.06.07 | kkh | |