์ข์์์ ์ด๋ชจํฐ์ฝ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ PK์ ๋ํด ๋ค์๋ ์๋ฌธ๊ณผ ํ์ต/์๊ฐ์ ๋ฆฌ๋ฅผ ์ํด ๊ฐ๋ตํ๊ฒ ๊ธ์ ๋จ๊ฒจ๋ด ๋๋ค.
1. Auto-Increment์ UUID. ๊ทธ ์๋ฏธ
Auto-Increment์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋ ๋ ์๋์ผ๋ก PK๊ฐ์ด 1 ์ฆ๊ฐํ๋ฉฐ UUID์ ๊ฒฝ์ฐ VARCHAR ํน์ Binary ๊ฐ์ผ๋ก PK๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. Auto-Increment ๊ฐ์ ๊ฒฝ์ฐ ์์ฐจ์ ์ผ๋ก ๊ฐ์ด ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์ฐ์์ ์ผ๋ก ์ฆ๊ฐํ๋ ๊ฒ์ ํ ๋์ ์์๋ณผ ์ ์๋ ์ฅ์ ์ด ์๋ ๋ฐ๋ฉด ์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๊ฑฐ๋ ํ๋๋ผ๋ ๊ทธ ๊ฐ์ด ์ฑ์์ง์ง ์์ต๋๋ค. ๋ฐ๋ฉด UUID์ ๊ฒฝ์ฐ ๋๋คํ ๊ฐ์ด ์์ฑ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค์ด์ค๊ธฐ ๋๋ฌธ์ ์ฐ์์ ์ธ ๊ฐ๋ค์ ์ ์ ๋ ์์ง๋ง ์ค๊ฐ์ ๊ณต๋ฐฑ์ด ์๊ธฐ๋๋ผ๋ PK์ ์ฐ์์ฑ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋ฉ๋๋ค.
ํ์๊ณผ ๊ฒ์๊ธ/๋๊ธ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ช ๋ฒ์งธ ํ์, ๋ช ๋ฒ์งธ ๊ฒ์๊ธ๊ณผ ๊ฐ์ด ์์ฐจ์ ์ธ ๊ฐ์ด ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ Auto-Increment๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์์ง ์์ง๋ง ๋ฐ๋ฉด ์ข์์/์ด๋ชจํฐ์ฝ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ด ๊ฐ์ ๊ตณ์ด Auto-Increment๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์์๊น? ์ ๋ํ ์๋ฌธ์ด ๋ค์์ต๋๋ค. ํ์์ด๋ ๊ฒ์๊ธ๋ณด๋ค ์์ฃผ ์ถ๊ฐ/์ญ์ ๋ ํ ๋ฐ ์ค๊ฐ์ ๊ฐ์ด ๋น๋๋ผ๋ ๋ณ ํ์๋ UUID๊ฐ ๋ ๋ซ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
2. ์ธ๋ฑ์ค์ UUID๋ฅผ ์ ํํ ์ด์
์ข์์/์ด๋ชจํฐ์ฝ์ UUID๋ก ๋ฐ๊พธ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด์ ํ๊ฐ์ง ๊ณ ๋ฏผ์ฌํญ์ด ์๊ฒผ๋๋ฐ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ UUID์ ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ์ ๋ ฌํ๋์ง์ ์ธ๋ฑ์ค์ ๊ธธ์ด, ์ฑ๋ฅ์ด์์ต๋๋ค. ์ฑ๋ฅ์ ๊ดํด์๋ ํด๋น ๋ธ๋ก๊ทธ์ ์คํ ์ค๋ฒ,์ธํ๋ฐ ๊ฐ์ ์ง๋ฌธ/๋ต๋ณ ์์ ์์ ๋ฆฌํด์ฃผ์ จ๋๋ฐ์, ํ ๋ฒ ์ฝ์ด๋ณด์ค ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
์ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ์ธ์ํ ๊น์ ๋ํด ๊ณ ๋ฏผ์ UUID๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ B-Tree ์์ฒด์ ์ธ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ๊ฒ์ด๊ธฐ์ ๋ฐ๋ก ๊ณ ๋ฏผํ์ง ์์๋ ๋๋ ๋ถ๋ถ์ด์์ต๋๋ค. ๋ํ key-len์ ๋ํด์๋ ๋ณ๋๋ก ์ ๊ฒฝ์ฐ์ง ์์๋๋ฐ binary ํํ๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ UUID๊ฐ ํฐ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. [์ถ์ฒ]
๋ฐ๋ผ์ INSERT, SELECT ์ฑ๋ฅ๋ง ๊ณ ๋ฏผํ๋ฉด ๋์๋๋ฐ INSERT์์๋ ์ฑ๋ฅ์ด ์กฐ๊ธ ๋จ์ด์ง์ง๋ง ์กฐํ์์ ์ฌ์ฉ์๊ฐ ๋๋ ์ ๋์ ํฐ ์ฐจ์ด๋ ์์ต๋๋ค.
๋ฐ๋ผ์ UUID๋ฅผ ์ข์์/์ด๋ชจํฐ์ฝ์ PK๋ก ์ค์ ํ๊ณ ์ง๊ธ๋ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฌผ๋ก UUID๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ๋ํ ๋ถ์ ์ ์ธ ์๊ฒฌ๋ ์ ๋ง ๋ง์๋๋ฐ์, ์ด๋ฐ ๋ถ๋ถ์ ๋ํด์๋ UUID๊ฐ ์ฃผ๋ ์ฅ์ ์ด๋ ์ ๊ฐ ์ ํํ ์ด์ ์ ๋ํด ํฌ์ํด์ผํ ๋น์ฉ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
- ์ด๋ชจํฐ์ฝ/์ข์์๋ ์ถ๊ฐ/์ญ์ ๊ฐ ๋น๋ฒํ๋ฐ ์ค๊ฐ์ ๊ฐ์ด ์ญ์ ๋๋๋ผ๋ PK ๊ณต๋ฐฑ์ด ์๊ธฐ์ง ์๋๋ค.
(PK ๊ณต๋ฐฑ์ด๋ 1, 2, 3, x, 5, 6๊ณผ ๊ฐ์ด PK๊ฐ ์์๋ 4๊ฐ ๋น๋ ํ์์ ๋งํฉ๋๋ค)
๋จ, ๋ฐ์ดํฐ๊ฐ ์์ฃผ ์ถ๊ฐ/์ญ์ ๋๋ค๋ฉด ์ด ๋ถ๋ถ์ ๋ํด์๋ ๋ณ๋๋ก ์ ๊ฒฝ์ ์จ์ผ ํ๋๋ฐ์, ์ด ๋ถ๋ถ์ ๋ํด์๋ ์ค๊ฐ์ ์บ์ฑ ์๋ฒ๋ฅผ ๋ง๋ค ์์ ์ด๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ๋ ๊ณ ๋ คํด๋ณผ ์์ ์ ๋๋ค. ๋ํ ๋ฐ์ดํฐ์ INSERT / DELETE๊ฐ ์กฐ๊ธ ๋ฆ์ด์ง๋๋ผ๋ ์กฐํํ๋ ์๋๊ฐ ๋นจ๋ผ์ง๊ธฐ ๋๋ฌธ์ ํฌ์ํด์ผ ํ ๋ถ๋ถ์ด๋ผ ์๊ฐํ์ต๋๋ค. **Auto-Increment๋ฅผ ํ์ฉํ๋๋ผ๋ ์ถ๊ฐ/์ญ์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ (์์ง์) ์กฐ๊ธ ๋ ์ง์ผ๋ด์ผํ ๊ฒ ๊ฐ์ต๋๋ค.
3. Conclusion
๊ฒฐ๋ก ์ ์ผ๋ก UUID๋ฅผ ์ฌ์ฉํด๋ ์ฌ์ฉ์๊ฐ ๋๋ ์ ๋๋ก ํฐ ์ฐจ์ด๋ ์๋ค ๋ ๊ฒ์ด ๊ฒฐ๋ก ์ด์๊ณ ์ด๋ฅผ ์ํด Auto-Increment๋์ UUID๋ฅผ ์ ํํ์ต๋๋ค. ์ฑ๋ฅ์ ์ ์ข์ ๋ถ๋ถ๋ ์๊ฒ ์ง๋ง ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด์ ๋๋ผ๋ ๋ถํธํจ์ด ์๋ค๋ฉด ์ด ๋ถ๋ถ์ ๋ํด ์ถ๊ฐ์ ์ผ๋ก ํฌ์คํ ์ ํด๋ณด๋ ค ํฉ๋๋ค. ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
'๐ฅDEV > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๊ทํ๊ฐ ๋ฐ๋์ ํ์ํ ๊น? (0) | 2022.09.07 |
---|
๋๊ธ