charcter-set-and-collation-in-mysql
Last updated
Last updated
์์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ฐ์์.
ํด์ํ์ ๋, =
๋ถ๋ถ์ utf8_general_ci,IMPLICIT
์ utf8mb4_unicode_ci,COERCIBLE
๋ฅผ ํผ์ฉํด์ ์ฌ์ฉํ๋ ค ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ณด์.
๊ทธ๋ฌ๋ฉด collation์ด๋ ๋ฌด์์ผ๊น?
set of rules for comparing characters in a character set.
์บ๋ฆญํฐ ์ ๋ด๋ถ์์ ์ ๋ ฌ๋๋ ๊ท์น.
์คํ๋๋ ์ฟผ๋ฆฌ ๋ฌธ์์ OrderBy, Like ๊ฐ์ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋ ์ด ๋ถ๋ถ์ด ์ํฅ์ ๋ผ์น์ง ์์๊น ์๊ฐํจ.
set of symbols and encodings
์๋ฅผ ๋ค๋ฉด..
four letters: A, B, a, b.
A = 0, B = 1, a = 2, b = 3.
A๋ Symbol, 0 ์ A๊ฐ encoding๋์์ ๋ ๋ํ๋ด๋ ์ซ์
combination of all four letters and their encodings is a character set
์ฆ symbol๊ณผ encodings์ ์งํฉ์ character set์ด๋ผ ๋ถ๋ฅธ๋ค.
์ ํ์ํ ๊น?
์๊ฐํด๋ณด๋ฉด, ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ 0,1 ์ซ์๋ก ๋งค์นญํ ํ์, ์ ์ฅ, ์ ์กํ๋๊น.. ํ์ ์ด encodings๋ง์ ๊ธฐ๋ฐ์ผ๋ก ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด์๋ ์ฝ์๋ ๊ท์น (์บ๋ฆญํฐ์ ) ์ด ํ์ํ ๋ฏ.
๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋?
๋ฌธ์์ด์ด ์ ์ ํ๊ฒ ์ธ์ฝ๋ฉ๋์ง ๋ชปํ๋ ๊ฒฝ์ฐ.
์ด๋ด ๊ฒฝ์ฐ, deconding ๋ ๋, ์ ์์ ์ธ ๋ฌธ์์ด๋ก ์นํ๋์ง ์์ ์๋ ์์๋ฏ.
Examples
MySQL 5.7
ํ์ฌ ์ ์ฉ ์ค์ธ character set๊ณผ, collation ์ค์ ์ ํ์ธํ ์ ์์.
utf8
utf8mb3
์ ๊ฐ์ ์๋ฏธ
ํ๋์ ์บ๋ฆญํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ 1~3 byte๋ฅผ ์๊ตฌ๋จ.
utf8mb4
supplementary characters. (์๋ง๋ ์ด๋ชจ์ง ๊ฐ์..๋ฌธ์)
Requires a maximum of four bytes per multibyte character. (์ต๋ 4๋ฐ์ดํธ๊น์ง ์ฌ์ฉํ๋ค๋ ์๋ฏธ์ธ๋ฏ)
์ ๋ฆฌํด๋ณด๋ฉด ์ด ์๋ฌ๋, =
๋น๊ต๋๋ sql operation์์ ์๋ก ๋ค๋ฅธ collations์ ์ฌ์ฉํ๋ ค ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋ฌธ์ .
์๋ง๋ ํด๋น ํ
์ด๋ธ์ ์ค์ ์ utf8_general_ci
์ด๊ณ , ๊ฐ์ ์ ์ผ๋ก ๊ทธ๋ฌ๋๊น ์ดํ๋ฆฌ์ผ์ด์
์์ ์ฟผ๋ฆฌ๋ utf8mb4_unicode_ci
collation์ ์ฌ์ฉํ๋๋ก ๋์ง ์์๋ ํจ.
๊ทธ๋ฆฌ๊ณ utf8mb4
๋ก ๋์ด์๋ ๊ฒ์ผ๋ก ๋ณด์ ์ด๋ชจ์ง๊ฐ ํฌํจ๋์ง ์์๋ ์ถ์.
๊ทธ๋์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก๋..
ํด๋น ํ ์ด๋ธ์ ์ ํ ์ ๋ณ๊ฒฝ (๋ฆฌ์คํฌ๊ฐ ๋๋ฐ๋ ๋ฏ.)
๋ฐ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ์์ ์ด๋ชจ์ง๋ฑ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ด ์์๋ฏ.
https://dev.mysql.com/doc/refman/5.7/en/charset-general.html
https://mathiasbynens.be/notes/mysql-utf8mb4
https://www.lesstif.com/dbms/mysql-character-sets-collations-9437311.html
https://en.wikipedia.org/wiki/Character_encoding
https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql