MySQL์˜ ์•”ํ˜ธํ™”: ๋งˆ์Šคํ„ฐ ํ‚ค ์ˆœํ™˜

์ƒˆ๋กœ์šด ๊ณผ์ •์˜ ์‹œ์ž‘์„ ์˜ˆ์ƒํ•˜์—ฌ "๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค" ์šฐ๋ฆฌ๋Š” MySQL์˜ ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ธฐ์‚ฌ๋ฅผ ๊ณ„์† ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด ์‹œ๋ฆฌ์ฆˆ์˜ ์ด์ „ ๊ธฐ์‚ฌ์—์„œ ์šฐ๋ฆฌ๋Š” ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค ์•”ํ˜ธํ™” ์ž‘๋™ ๋ฐฉ์‹. ์˜ค๋Š˜์€ ์•ž์—์„œ ์–ป์€ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ฉ”์ธ ํ‚ค์˜ ํšŒ์ „์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ํ‚ค ์ˆœํ™˜์—๋Š” ์ƒˆ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด ์ƒˆ ํ‚ค๋กœ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค(ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ—ค๋”์— ์ €์žฅ๋จ)๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๋œ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์˜ ํ—ค๋”๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๊ธฐ์–ตํ•ด ๋ด…์‹œ๋‹ค.

MySQL์˜ ์•”ํ˜ธํ™”: ๋งˆ์Šคํ„ฐ ํ‚ค ์ˆœํ™˜

์ด์ „ ๊ธฐ์‚ฌ์—์„œ ์šฐ๋ฆฌ๋Š” ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  ์•”ํ˜ธํ™”๋œ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์˜ ํ—ค๋”๋ฅผ ์ฝ๊ณ  ๊ฐ€์žฅ ํฐ KEY ID๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด KEY๊ฐ€ ์žˆ๋Š” ์„ธ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒฝ์šฐID = 3 ๋ฐ KEY๊ฐ€ ์žˆ๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”ID = 4์ด๋ฉด ์ตœ๋Œ€ ํ‚ค ID๋Š” 4๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด KEY ID - MAX KEY ID๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ํ‚ค ์ˆœํ™˜ ์ž‘๋™ ๋ฐฉ์‹

1. ์‚ฌ์šฉ์ž๊ฐ€ ALTER INNODB MASTER KEY๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„๋Š” ์„œ๋ฒ„ UUID ๋ฐ KEY๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ‚ค๋ง์— ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.XNUMX ๋”ํ•˜๊ธฐ MAX์™€ ๊ฐ™์€ IDKEYID. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” INNODB์™€ ๋™์ผํ•œ ๋งˆ์Šคํ„ฐ ํ‚ค ID๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.ํ‚ค-UUID-(์ตœ๋Œ€KEY์‹ ๋ถ„์ฆ + 1). ๋งˆ์Šคํ„ฐ ํ‚ค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉด MAX KEY ID๊ฐ€ XNUMX์”ฉ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: MAXKEYID=MAXKEY์‹ ๋ถ„์ฆ + 1).

3. ์„œ๋ฒ„๋Š” ๋งˆ์Šคํ„ฐ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ชจ๋“  ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋ฅผ ์Šค์บ”ํ•˜๊ณ  ๊ฐ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒˆ ๋งˆ์Šคํ„ฐ ํ‚ค๋กœ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ํ‚ค ID๋ฅผ ์ƒˆ MAX๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.KEY์‹ ๋ถ„์ฆ;

  • UUID๊ฐ€ ์„œ๋ฒ„ UUID์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์„œ๋ฒ„ UUID๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

์•„์‹œ๋‹ค์‹œํ”ผ ํ…Œ์ด๋ธ” ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ๋งˆ์Šคํ„ฐ ํ‚ค ID๋Š” UUID์™€ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ—ค๋”์—์„œ ์ฝ์€ KEY ID๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์€ ์„œ๋ฒ„๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ์•”ํ˜ธํ™” ํ—ค๋”์—์„œ ์ด ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฐฑ์—…๊ณผ ๊ฐ™์ด ๋‹ค๋ฅธ ์œ„์น˜์˜ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋งˆ์Šคํ„ฐ ํ‚ค๋Š” ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์ €์žฅ์†Œ์—์„œ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํŠนํžˆ ์„œ๋ฒ„ ์ธก ํ‚ค ์ €์žฅ์†Œ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„ ์‹œ์ž‘ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค ์ˆœํ™˜์„ ํ†ตํ•ด ๋ชจ๋“  ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋‹จ์ผ ๋งˆ์Šคํ„ฐ ํ‚ค๋กœ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์„œ๋ฒ„๋Š” ์‹œ์ž‘ ์‹œ ํ•˜๋‚˜์˜ ๋งˆ์Šคํ„ฐ ํ‚ค๋งŒ ์ˆ˜์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด๊ฒƒ์€ ์ฆ๊ฑฐ์šด ๋ถ€์ž‘์šฉ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค ์ˆœํ™˜์˜ ์ฃผ์š” ๋ชฉ์ ์€ ์„œ๋ฒ„๋ฅผ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค๊ฐ€ ๋ณผํŠธ(์˜ˆ: ๋ณผํŠธ ์„œ๋ฒ„)์—์„œ ๋„๋‚œ๋‹นํ•œ ๊ฒฝ์šฐ ์ƒˆ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋„๋‚œ๋‹นํ•œ ํ‚ค๋ฅผ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฐ ์•ˆ์ „ํ•ด...๊ฑฐ์˜.

์ด์ „ ๊ธฐ์‚ฌ์—์„œ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ๋„๋‚œ๋‹นํ•˜๋ฉด ์ œXNUMX์ž๊ฐ€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ๋„๋‚œ๋‹นํ•˜๊ณ  ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋„๋‚œ๋‹นํ•œ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ํ•ด๋…ํ•˜๊ณ  ํ•ด๋…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด์‹œ๋‹ค์‹œํ”ผ ๋งˆ์Šคํ„ฐ ํ‚ค์˜ ํšŒ์ „์€ ์ด ๊ฒฝ์šฐ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋งˆ์Šคํ„ฐ ํ‚ค๋กœ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์‹ค์ œ ํ‚ค๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "ํ•ด์ปค"๋Š” ์ด๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋‚˜๋Š” ์•”์‹œํ–ˆ๋‹ค. MySQL์šฉ Percona ์„œ๋ฒ„ ๋‹จ์ˆœํ•œ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค ์žฌ์•”ํ˜ธํ™”๊ฐ€ ์•„๋‹Œ ์ง„์ •ํ•œ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ์žฌ์•”ํ˜ธํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์•”ํ˜ธํ™” ์Šค๋ ˆ๋“œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ธฐ๋Šฅ์€ ์•„์ง ์‹คํ—˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ํ‚ค ํšŒ์ „์€ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ๋„๋‚œ๋‹นํ–ˆ์„ ๋•Œ ์œ ์šฉํ•˜์ง€๋งŒ ๊ณต๊ฒฉ์ž๊ฐ€ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค ํ‚ค๋ฅผ ํ•ด๋…ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ฌด๋ฃŒ ๋ฐ๋ชจ ๋ ˆ์Šจ์— ๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค.

๋” ์ฝ์–ด๋ณด๊ธฐ:

์ถœ์ฒ˜ : habr.com