...

ํ ์ด๋ธ engine / character ์ค์
ํ ์ด๋ธ ์์ฑํ ๋ ์ถ๊ฐ ์ต์ ์ผ๋ก engine๊ณผ character๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์ด ์ต์ ๋ค์ ์์ง์ ๋ณ๊ฒฝํ๋ค๊ฑฐ๋ ์ธ์ฝ๋ฉ ํฌ๋งท์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MySQL์ ๊ธฐ๋ณธ ์์ง์ด InnoDB์ด๊ธฐ ๋๋ฌธ์ ๋ณ๋ค๋ฅธ ์ค์ ์ ํ์ง ์์๋ ๋ํดํธ๋ก ์ ์ฉ์ด ๋๊ธฐ๋ ํ์ง๋ง, ์ด ๋ํดํธ ์ค์ ์ด ์ด๋ ์ํฉ์์๋ ์์ฉํ๋ค๋ ์กฐ๊ฑด์ด ์๋๋ฏ๋ก ํ ์ด๋ธ์ ์์ฑํ ๋ ํ์คํ ๋ช ์ํด์ฃผ๋ ๊ฒ์ด ์ข์ต๋๋ค.
create table nodejs.comments (
id int not null primary key auto_increment,
commenter int not null,
comment varchar(100) not null, -- ๋๊ธ
created_at datetime not null default now(),
index commenter_idx(commenter ASC),
constraint commenter foreign key(commenter) references nodejs.users(id) on delete cascade on update cascade
)
comment = "๋๊ธ" -- ํ
์ด๋ธ ์ค๋ช
default charset = utf8mb4 -- mb4๋ ์ด๋ชจํฐ์ฝ๋ ๋ฃ์ ์ ์์
engine = InnoDB; -- ์์ง ์ค์
์์ง ๋ช ์๋ ์ฒ์ ํ ์ด๋ธ์ ์์ฑํ ๋, ํ๋ ์ ๋ ฅ์ด ๋๋ ๋ค์ ์์ง์ ์ ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
ENGINE=InnoDB ์ด๋ฐ ์์ผ๋ก ์ ์ด์ฃผ๋ฉด ๋๊ณ , ๊ทธ ๋ค์๋ character set ์ค์ ์ ํด์คฌ์ต๋๋ค.
์ํฌ๋ฒค์น์์ gui๋ก ํ ์ด๋ธ์ ๋ง๋ค๋๋, ํด๋น ์ค์ ์ ํ ์์๋ ์นธ์ ๋ณด์ค ์ ์์ต๋๋ค.

utf8mb4๋ ๊ฐ ๋ฌธ์๊ฐ UTF-8 ์ธ์ฝ๋ฉ ์ฒด๊ณ์์ MaxByte 4๋ก ์ ์ฅ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ธฐ์กด์ utf8์ ์๋๋ 4๋ฐ์ดํธ๊น์ง์ ์๋ฃํ์ ์ ์ฅํ ์ ์์ง๋ง, ์ ์ธ๊ณ ๋ชจ๋ ์ธ์ด๊ฐ 21bit๋ก 3๋ฐ์ดํธ ๋ด๋ก ์ฒ๋ฆฌ๊ฐ ๋์ด MySQL์์ 3๋ฐ์ดํธ ๊ฐ๋ณ ์๋ฃํ์ผ๋ก ์ค๊ณํ๋ค๊ณ ํฉ๋๋ค.
์ด๋ฌํ ์ด์ ๋๋ฌธ์ 4๋ฐ์ดํธ๋ก ์ฒ๋ฆฌ๋๋ ์ด๋ชจ์ง(์ด๋ชจํฐ์ฝ)๋ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๊ณ , utf8mb4๋ผ๋ ์ฒด๊ณ๋ฅผ ์ถ๊ฐํด์ 4๋ฐ์ดํธ๊น์ง์ ๋ฌธ์์ด์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ค๊ณ ํฉ๋๋ค.
collation๋ ๋ฌธ์๋ฅผ ์ ๋ ฌํ๋ ๋ฐฉ์์ ์ค์ ํด์ค๋๋ค.
์ฒ๋ฆฌ ๋ฐฉ์์ ๋ฐ๋ผ 'a'๊ฐ 'B' ์์ ์ฌ ์๋ ์๊ณ ๋ค์ ์ฌ์๋ ์์ต๋๋ค.
0900์ Unicode Collation Algorithm ๋ฒ์ ์ ๋ํ๋ด๊ณ , ai๋ ์ ์ผํธ๋ฅผ ๊ตฌ๋ถํ์ง ์์์ ๋ํ๋ ๋๋ค.
์ฆ, ์ ๋ ฌ ํ ๋ e, รจ, รฉ, รช ๋ฐ รซ ์ฌ์ด์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ci๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. a์ A์ ์ฐจ์ด๋ฅผ ๋์ง ์๋๋ค๋ ๋ป ์ ๋๋ค.
์ด์ ์๋ utf8mb4_general_ci๊ฐ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ ฌ์ด์์ผ๋, ์์ฆ ์ฌ์ฉํ๋ ํ ์ด๋ธ์ ์๊ตฌ์ฌํญ์ด ๋ฌ๋ผ์ ธ utf8mb4_0900_ai_ci์ ๋ ฌ์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋์๋ค๊ณ ํฉ๋๋ค.
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.