utf8mb4_unicode_ci와 utf8mb4_general_ci의 차이점
이번에는 디비에서 인코딩과 관련한 글로 utf8mb4_unicode_ci와 utf8mb4_general_ci의 차이점을 보시겠습니다.
utf8mb4_unicode_ci와 utf8mb4_general_ci는 MySQL 데이터베이스에서 문자열을 비교 및 정렬하기 위해 사용되는 문자열 인코딩 및 정렬 규칙입니다. 이 두 규칙 간에는 다음과 같은 차이점이 있습니다:
1. 언어 및 문자 처리: utf8mb4_unicode_ci는 유니코드 기반으로 모든 언어 및 문자를 지원하는 규칙이며, 문자의 일관성과 정확성을 보장합니다. 반면에 utf8mb4_general_ci는 일반적인 언어 및 문자만을 지원하며, 몇몇 특수한 언어나 문자의 정렬이 올바르게 이루어지지 않을 수 있습니다.
2. 정렬 순서: utf8mb4_unicode_ci는 문자열을 정렬할 때 유니코드 코드 포인트를 기준으로 하여 정렬합니다. 이는 각 문자의 고유한 식별자를 기반으로 정렬하므로, 다양한 언어와 문자를 정확하게 정렬할 수 있습니다. 반면 utf8mb4_general_ci는 문자의 바이트 시퀀스를 기준으로 정렬하며, 일부 언어나 문자의 정렬 순서가 제대로 반영되지 않을 수 있습니다.
3. 성능: utf8mb4_unicode_ci는 정확한 문자 정렬을 위해 추가적인 계산이 필요하므로, 일반적으로 utf8mb4_general_ci에 비해 더 많은 리소스를 요구합니다. 따라서 대량의 데이터가 있는 경우 utf8mb4_general_ci를 사용하는 것이 성능상 유리할 수 있습니다.
결론적으로, utf8mb4_unicode_ci는 다양한 언어와 문자를 정확하게 지원하는 대신 약간의 성능 저하가 발생할 수 있습니다. utf8mb4_general_ci는 보다 간단하고 빠른 정렬을 제공하지만, 일부 언어나 문자에서는 정확한 정렬 순서가 보장되지 않을 수 있습니다. 선택은 사용하는 데이터베이스의 요구 사항과 용도에 따라 달라질 수 있습니다.
실례로 독일어나 프랑스어는 utf8mb4_unicode_ci에서는 정확하게 인코딩하나 utf8mb4_general_ci 는 인코딩 및 정렬에서 정확치 않습니다.
ß = s // utf8mb4_general_ci은 두 문자가 동일한것으로 인코딩
ß = ss // utf8mb4_general_ci는 서로다른 문자로 인식, 그러나 utf8mb4_unicode_ci는 독일사전규칙을 반영하여 두 문자를 동일한것으로 인코딩
때문에 디비를 설계할때 저장하려는 문자열의 어종에 따라 적합한 인코딩을 지정해주어야 하며 대용량디비에서는 될수록 utf8mb4_general_ci 를 써야 성능부하를 줄입니다.
댓글 3개
그럼 이모지도 지원되나요?
게시판 목록
개발자팁
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5066 | 기타 |
DogFoot개발
|
4년 전 | 1820 | |
| 5065 | PHP |
DogFoot개발
|
4년 전 | 1532 | |
| 5064 | PHP |
happyl
|
4년 전 | 1921 | |
| 5063 | node.js |
DogFoot개발
|
4년 전 | 1676 | |
| 5062 | node.js |
DogFoot개발
|
4년 전 | 1693 | |
| 5061 | node.js |
DogFoot개발
|
4년 전 | 1419 | |
| 5060 | node.js |
DogFoot개발
|
4년 전 | 1257 | |
| 5059 | node.js |
DogFoot개발
|
4년 전 | 1251 | |
| 5058 | 기타 |
DogFoot개발
|
4년 전 | 2698 | |
| 5057 | 웹서버 |
DogFoot개발
|
4년 전 | 2727 | |
| 5056 | MySQL | 4년 전 | 1507 | ||
| 5055 | 기타 | 4년 전 | 1437 | ||
| 5054 | OS | 4년 전 | 2071 | ||
| 5053 | 웹서버 | 4년 전 | 3634 | ||
| 5052 | OS | 4년 전 | 2427 | ||
| 5051 | PHP | 4년 전 | 2191 | ||
| 5050 | 웹서버 | 4년 전 | 1722 | ||
| 5049 | MySQL | 4년 전 | 1901 | ||
| 5048 | OS | 4년 전 | 2707 | ||
| 5047 | PHP | 4년 전 | 4376 | ||
| 5046 | MySQL | 4년 전 | 1822 | ||
| 5045 | MySQL | 4년 전 | 1945 | ||
| 5044 | MySQL | 4년 전 | 4137 | ||
| 5043 | MySQL | 4년 전 | 1893 | ||
| 5042 | 기타 |
|
4년 전 | 2638 | |
| 5041 | MySQL | 4년 전 | 2000 | ||
| 5040 | MySQL | 4년 전 | 1727 | ||
| 5039 | MySQL | 4년 전 | 1502 | ||
| 5038 | MySQL | 4년 전 | 1339 | ||
| 5037 | OS | 4년 전 | 4434 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기