Unicode(์ ๋์ฝ๋)
- ์ ๋์ฝ๋๋ ์ ์ธ๊ณ์ ๋ชจ๋ ๋ฌธ์, ๊ธฐํธ, ์ด๋ชจ์ง ๋ฑ์ ์ปดํจํฐ์์ ์ผ๊ด๋๊ฒ ํํํ๊ณ ๋ค๋ฃฐ ์ ์๊ฒ ๋ง๋
๊ตญ์ ํ์ค ๊ท์ฝ
์ด๋ค.
- ์ธ์์ ๋ชจ๋ ๊ธ์์ ๊ณ ์ ํ ID๋ฅผ ํ๋์ฉ ๋ถ์ฌํ
๊ฑฐ๋ํ ๋ฌธ์ ๋ฐฑ๊ณผ์ฌ์
์ด๋ผ๊ณ ๋ ๋ณผ ์ ์๋ค.
1. ํ์ ๋ฐฐ๊ฒฝ
- ๊ณผ๊ฑฐ์๋ ๋๋ผ ๋๋ ์์คํ
๋ง๋ค ๋ฌธ์๋ฅผ ํํํ๋ ๋ฐฉ์(์ธ์ฝ๋ฉ)์ด ์ ๊ฐ๊ฐ์ด์๋ค.
- ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ๊ธ์๊ฐ ๊นจ์ง๋ ํ์์ด ๋น์ผ๋น์ฌํ๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ ์ธ๊ณ์ ์ผ๋ก ์ ์ผํ ์ฝ๋ ๋ฒํธ๋ฅผ ๋ถ์ฌํ ๊ฒ์ด๋ค.
2. UTF-8
Unicode Transformasion Format-8-bit
์ ์ค ๋ง๋ก, ์ ๋์ฝ๋์ ์ฝ๋ ํฌ์ธํธ๋ฅผ ์ค์ ์ปดํจํฐ์ ๋ฐ์ดํธ ํํ๋ก ์ ์ฅํ๋ ๊ฐ์ฅ ๋์ค์ ์ธ ์ธ์ฝ๋ฉ ๋ฐฉ์์ด๋ค.
2-1. ํต์ฌ : ๊ฐ๋ณ ๊ธธ์ด ์ธ์ฝ๋ฉ
- ๊ฐ์ฅ ํฐ ํน์ง์, ๋ฌธ์์ ๋ถ์ฌ๋ ๋ฒ์์ ๋ฐ๋ผ ์ ์ฅ์ ์ฌ์ฉํ๋ ๋ฐ์ดํธ ์๋ฅผ ํจ์จ์ ์ผ๋ก ์กฐ์ ํ๋
๊ฐ๋ณ ๊ธธ์ด ์ธ์ฝ๋ฉ
์ด๋ผ๋ ์ ์ด๋ค.
- 1๋ฐ์ดํธ : ์์ด, ์ซ์ ๋ฑ (ASCII ์ฝ๋์ ๋์ผ)
- 2๋ฐ์ดํธ : ์ ๋ฝ ๋ฌธ์, ์๋์ด ๋ฑ
- 3๋ฐ์ดํธ : ํ๊ธ, ํ์ ๋ฑ ๋๋ถ๋ถ์ ํ๋ ๋ฌธ์
- 4๋ฐ์ดํธ : ๊ณ ๋ ๋ฌธ์, ์ํ ๊ธฐํธ, ๋๋ถ๋ถ์ ์ด๋ชจ์ง ๋ฑ
utf8mb4_0900_ai_ci ๐ utf8mb4_general_ci
1. utf8mb4
utf8
: ๋ฌธ์๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ฐ ๊ธฐ์ ์ด, UTF-8 ์ธ์ฝ๋ฉ ๋ฐฉ์์์ ์๋ฏธํ๋ค.
mb4
: most bytes 4 ์ ์ค์๋ง๋ก, ํ๋์ ๋ฌธ์๋ฅผ ํํํ๊ธฐ ์ํด ์ต๋ 4๋ฐ์ดํธ๊น์ง ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ด๋ค.
- ์ด๋ฅผ
Character Set
์ด๋ผ๊ณ ํ๋ค.
1-1. utf8mb4๊ฐ ํ์ํ ์ด์
- ๊ณผ๊ฑฐ MySQL์ utf8 ์บ๋ฆญํฐ ์
์ UTF-8 ํ์ค์ ์ผ๋ถ๋ง ๊ตฌํํ์ฌ ์ต๋ 3๋ฐ์ดํธ๊น์ง๋ง ์ง์ํ์๋ค.
- ๋๋ฌธ์ 4๋ฐ์ดํธ๊ฐ ํ์ํ ๋ฌธ์๋ค์ ์ ์ฅํ ์ ์์๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ utf8mb4๊ฐ ํ์ํ์๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ฌธ์ ์์ด ์ ์ฅํ ์ ์๊ฒ ๋์๋ค.
2. 0900_ai_ci
- ํ์ฌ MySQL 8.0์ ๊ธฐ๋ณธ ์ค์ ๊ฐ์ด๋ค.
0900
: ๊ธฐ๋ฐ์ด ๋๋ ์ ๋์ฝ๋ ํ์ค ๋ฒ์ ์ด 9.0.0 ์์ ์๋ฏธํ๋ค.
ai(Accent Insensitive)
: ์
์ผํธ ๋ถํธ(รก, ร ๋ฑ)๋ฅผ ์๋ณธ ๋ฌธ์์ ๋์ผํ๊ฒ ์ทจ๊ธํ๋ค.
ci(Case Insensitive)
: ๋์๋ฌธ์๋ฅผ ๋์ผํ๊ฒ ์ทจ๊ธํ๋ค.
- ์ด๋ฌํ ์ค์ ์
Collation
์ด๋ผ๊ณ ํ๋ค.
3. general_ci
- ๊ณผ๊ฑฐ์ ์๋๋ฅผ ์ค์ํ์ฌ ๋๋ฆฌ ์ฌ์ฉ๋์๋ Collation์ด๋ค.
general
: ํน์ ์ธ์ด ๊ท์น์ ์๊ฒฉํ๊ฒ ๋ฐ๋ฅด์ง ์๋ ์ผ๋ฐ์ ์ธ(General) ****๋น๊ต ๊ท์น์ ์ฌ์ฉํ๋ค.
- ์ฆ, ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ ๋ ฌ ๊ท์น์ ๋จ์ํํ ๋ฐฉ์์ด๋ค.
- ex) ๋
์ผ์ด์์
ร
๋ ss
์ ๋์ผํ๊ฒ ์ทจ๊ธ๋์ด์ผ ํ๋, ๋ค๋ฅด๊ฒ ์ทจ๊ธ๋๋ค.
ci(Case Insensitive)
: ๋์๋ฌธ์๋ฅผ ๋์ผํ๊ฒ ์ทจ๊ธํ๋ค.
4. ํต์ฌ ์ฐจ์ด์ ์์ฝ
๊ตฌ๋ถ | utf8mb4_0900_ai_ci (์ต์ ํ์ค) | utf8mb4_general_ci (๊ตฌ๋ฒ์ ) |
---|
์ ํ์ฑ | ๋งค์ฐ ๋์. ๋ค๊ตญ์ด์ ํน์ ๋ฌธ์๋ฅผ ์ธ์ด ๊ท์น์ ๋ง๊ฒ ์ ํํ๊ฒ ์ ๋ ฌ. | ๋ฎ์. ๋จ์ํ๋ ๊ท์น์ ์ฌ์ฉํด ํน์ ๋ฌธ์๋ ์ธ์ด์์ ์ ๋ ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ |
๊ธฐ๋ฐ ํ์ค | Unicode 9.0.0 (UCA) | ๊ตฌ๋ฒ์ ์ ๋จ์ํ๋ ์ ๋์ฝ๋ ๊ท์น |
์ง์ ๋ฒ์ | ์
์ผํธ, ๋์๋ฌธ์, ์ด๋ชจ์ง, ํน์ ๊ธฐํธ๋ฅผ ํญ๋๊ณ ์ ํํ๊ฒ ์ฒ๋ฆฌ | ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ ์ฒ๋ฆฌ์ ์ค์ |
์ฑ๋ฅ | ์ต์ CPU์ ์ต์ ํ๋์ด general_ci ์ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๊ฑฐ์ ์์ | ๊ตฌ๋ฒ์ MySQL์์๋ ์ฝ๊ฐ ๋ ๋นจ๋์ง๋ง, ์ด๋ ์ ํ์ฑ์ ํฌ์ํ ๊ฒฐ๊ณผ |
๊ธฐ๋ณธ๊ฐ | MySQL 8.0 ์ด์์ ๊ธฐ๋ณธ ์ ๋ ฌ ๊ท์น | MySQL 8.0 ๋ฏธ๋ง ๋ฒ์ ์์ ๋๋ฆฌ ์ฌ์ฉ |
utf8mb4_0900_ai_ci์ ํ๊ธ ์ฌ์ฉ์ ๋ํ ๋ฌธ์ ์
- MySQL 8.0 ์ด์ ๋ฒ์ ๋ถํฐ ๊ธฐ๋ณธ ์ฝ๋ ์ด์
์ผ๋ก ์ค์ ๋
utf8mb4_0900_ai_ci
๋ ํ๊ธ์ด๋ ๋์์์ ๊ณ์ด์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๋๋ผ์์๋ ์น๋ช
์ ์ธ ๋ฌธ์ ๊ฐ ์๋ค.
- ํ๊ธ์ ์์ ๋ชจ์, ์ผ๋ณธ์ด ๊ฐํ์นด๋/ํ๋ผ๊ฐ๋๋ฅผ ๊ฐ์ ๋ฌธ์์ด๋ก ์ธ์ํ์ฌ ์ฒ๋ฆฌ ํ๊ธฐ ๋๋ฌธ์ ๊ธ๋ก๋ฒ ์๋น์ค์ธ ๊ฒฝ์ฐ ์ฝ๋ ์ด์
์ค์ ์ ๋ฐ๋์ ์ฃผ์ํด์ผ ํ๋ค.
1. utf8mb4_general_ci ์์ ํ๊ธ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ ๊ฒฐ๊ณผ
mysql> select no, name, length(name), hex(name) from test1 t1
-> where name = '๊ฐ๋๋ค';
+
| no | name | length(name) | hex(name) |
+
| 1 | ๊ฐ๋๋ค | 9 | EAB080EB8298EB8BA4 |
+
1 row in set (0.00 sec)
mysql> select no, name, length(name), hex(name) from test1 t1
-> where name = 'ใฑใ
๋๋ค';
+
| no | name | length(name) | hex(name) |
+
| 2 | ใฑใ
๋๋ค | 12 | E384B1E3858FEB8298EB8BA4 |
+
1 row in set (0.00 sec)
mysql> select no, name, length(name), hex(name) from test1 t1
-> where name = 'ใฑใ
ใดใ
ใทใ
';
+
| no | name | length(name) | hex(name) |
+
| 3 | ใฑใ
ใดใ
ใทใ
| 18 | E384B1E3858FE384B4E3858FE384B7E3858F |
+
1 row in set (0.00 sec)
- ์ ํํ ๋์ผํ ๋ฌธ์์ด๋ง ์กฐํํ๋ค.
2. utf8mb4_0900_ai_ci์์ ํ๊ธ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ ๊ฒฐ๊ณผ
mysql> select no, name, length(name), hex(name) from test2 t2
-> where name = '๊ฐ๋๋ค';
+
| no | name | length(name) | hex(name) |
+
| 1 | ๊ฐ๋๋ค | 9 | EAB080EB8298EB8BA4 |
| 2 | ใฑใ
๋๋ค | 12 | E384B1E3858FEB8298EB8BA4 |
| 3 | ใฑใ
ใดใ
ใทใ
| 18 | E384B1E3858FE384B4E3858FE384B7E3858F |
+
3 rows in set (0.00 sec)
mysql> select no, name, length(name), hex(name) from test2 t2
-> where name = 'ใฑใ
๋๋ค';
+
| no | name | length(name) | hex(name) |
+
| 1 | ๊ฐ๋๋ค | 9 | EAB080EB8298EB8BA4 |
| 2 | ใฑใ
๋๋ค | 12 | E384B1E3858FEB8298EB8BA4 |
| 3 | ใฑใ
ใดใ
ใทใ
| 18 | E384B1E3858FE384B4E3858FE384B7E3858F |
+
3 rows in set (0.00 sec)
mysql> select no, name, length(name), hex(name) from test2 t2
-> where name = 'ใฑใ
ใดใ
ใทใ
';
+
| no | name | length(name) | hex(name) |
+
| 1 | ๊ฐ๋๋ค | 9 | EAB080EB8298EB8BA4 |
| 2 | ใฑใ
๋๋ค | 12 | E384B1E3858FEB8298EB8BA4 |
| 3 | ใฑใ
ใดใ
ใทใ
| 18 | E384B1E3858FE384B4E3858FE384B7E3858F |
+
3 rows in set (0.00 sec)
- ๊ธธ์ด๋ hex ๊ฐ์ด ๋ค๋ฆ์๋, ๋ชจ๋ ๋์ผํ ๊ธ์๋ก ์ธ์ํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ชจ๋ ๋ฐํํ๋ค.
3. ํํ ๊ณต๋ฐฑ(Trailing Spaces) ์ฒ๋ฆฌ ๋ฐฉ์์ ์ฐจ์ด
- ๋ ์ฝ๋ ์ด์
์ ๋ฌธ์์ด ๋์ ์๋ ๊ณต๋ฐฑ์ ์ฒ๋ฆฌํ๋ ๊ท์น์ด ๋ค๋ฅด๋ค.
utf8mb4_general_ci
: ๋ฌธ์์ด ๋์ ๊ณต๋ฐฑ์ ๋ฌด์ํ๊ณ ๋น๊ตํ๋ค. (PAD SPACE
๊ท์น)
utf8mb4_0900_ai_ci
: ๋ฌธ์์ด ๋์ ๊ณต๋ฐฑ์ ์๋ฏธ ์๋ ๋ค๋ฅธ ๋ฌธ์๋ก ์ธ์ํ๋ค. (NO PAD
๊ท์น)
3-1. general_ci: ๊ณต๋ฐฑ์ ๋ฌด์ํ์ฌ 2๊ฐ ๋ชจ๋ ๊ฒ์๋จ
mysql> SELECT * FROM test3 WHERE name = 'test';
+
| name |
+
| test |
| test |
+
3-2. 0900_ai_ci: ๊ณต๋ฐฑ์ ์ธ์ํ์ฌ ์ ํํ 1๊ฐ๋ง ๊ฒ์๋จ
mysql> SELECT * FROM test4 WHERE name = 'test';
+
| name |
+
| test |
+
๊ฒฐ๋ก : ์ํฉ๋ณ ์ถ์ฒ ์ฝ๋ ์ด์
1. utf8mb4_0900_ai_ci
- ๋ค์ํ ์ธ์ด์ ํ
์คํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธ๋ก๋ฒ ์๋น์ค ๋๋ ์ผ๋ฐ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ๋
- ์ธ์ดํ์ ๊ท์น์ ๋ง๋ ์ ํํ ์ ๋ ฌ์ด ์ค์ํ ๋
- ex) ์ฌ์ฉ์๋ค์ด
Mรผller
์ Muller
, cafe
์ cafรฉ
๋ฅผ ์
๋ ฅํ์ ๋, ์ด๋ฅผ ์ ์ฌํ ๋จ์ด๋ก ์ธ์ํ๊ณ ๊ฒ์ํ๊ฑฐ๋ ์ ๋ ฌํด์ผ ํ๋ ๊ฒฝ์ฐ
2. utf8mb4_general_ci
- ํ๊ธ ๋ฐ์ดํฐ๊ฐ ์ค์ฌ์ด๋ฉฐ, ์์ฑํ ๊ธ์(
๊ฐ
)์ ์์ ๋ถ๋ฆฌ ๊ธ์(ใฑ
+ใ
)๋ฅผ ์๋์ ์ผ๋ก ๋ค๋ฅด๊ฒ ์ทจ๊ธํ๊ณ ์ถ์ ๋
UNIQUE
ํค ๋ฑ์์ ๋ ํํ๊ฐ ๋ช
ํํ ๊ตฌ๋ถ๋์ด์ผ ํ ๋
- ํํ ๊ณต๋ฐฑ์ ๋ฌด์ํ๊ณ ๋น๊ตํ๊ณ ์ถ์ ๋
3. utf8mb4_bin
- ๋์๋ฌธ์๋ฅผ ๋ฐ๋์ ๊ตฌ๋ถํด์ผ ํ๋ ๋ฐ์ดํฐ์ผ ๋
- ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋น๊ต ๋ฐ ์ ๋ ฌํ๊ณ ์ถ์ ๋
4. ์์ฝ
Collation | ํต์ฌ ํน์ง | ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก |
---|
utf8mb4_0900_ai_ci | ์ ํ์ฑ, ๊ตญ์ ํ์ค, ์ธ์ดํ์ ๊ท์น | ๊ธ๋ก๋ฒ ์๋น์ค ๋๋ ๋๋ถ๋ถ์ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
(์: cafe = cafรฉ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋) |
utf8mb4_general_ci | ๋จ์/์ง๊ด์ ๋น๊ต, ํ๊ธ ์์ ๋ถ๋ฆฌ | ํ๊ธ ์ค์ฌ ์๋น์ค์์ ์์ฑํ/์กฐํฉํ ๊ธ์๋ฅผ ๋ช
ํํ ๊ตฌ๋ถํ๊ณ ์ถ์ ๋ (์: ๊ฐ โ ใฑ +ใ
) |
utf8mb4_bin | ๋ฐ์ด๋๋ฆฌ(๋ฐ์ดํธ) ๊ฐ ๋น๊ต, ๋์๋ฌธ์ ๊ตฌ๋ถ | API ํค, ๋น๋ฐ๋ฒํธ, ์ธ์ฆ ํ ํฐ ๋ฑ ๋์๋ฌธ์๋ฅผ ํฌํจํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ํํ ๊ตฌ๋ถํด์ผ ํ ๋ |
์ฐธ๊ณ ํ ๊ธ
MySQL 8.0.1 utf8mb4_0900_ai_ci์ ํ๊ธ ์ฌ์ฉ์ ๋ํ ๋ฌธ์ ์ - RastaLion.dev