Search

MySQL ๊ฐ์ฒด - ์ธ๋ฑ์Šค, ์‹œํ€€์Šค

MySQL ๊ฐ์ฒด - ์ธ๋ฑ์Šค, ์‹œํ€€์Šค

MySQL์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ๋น ๋ฅด๊ฒŒ ํ•ด์ฃผ๋Š”ย ์ธ๋ฑ์Šค์™€, ์ž๋™์œผ๋กœ ์ˆœ์ฐจ์ ์ธ ์ˆซ์ž๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š”ย ์‹œํ€€์Šค์— ๋Œ€ํ•ด ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๊ณ , ์‹ค์ œ ์„ฑ๋Šฅ ์ฐจ์ด๋ฅผ ์‹ค์Šต์œผ๋กœ ํ™•์ธํ•˜๋Š” ์˜์ƒ์ž…๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
์ธ๋ฑ์Šค๋ž€? [00:00:36]
2.
์ธ๋ฑ์Šค ์ƒ์„ฑ๊ณผ ์‚ญ์ œ ๋ฐฉ๋ฒ• [00:02:46]
3.
์ธ๋ฑ์Šค ์ ์šฉ ์ „ํ›„ ์„ฑ๋Šฅ ๋น„๊ต ์‹ค์Šต [00:04:36]
4.
์ธ๋ฑ์Šค ์ •๋ณด ํ™•์ธ๊ณผ ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ • [00:05:09]
5.
์ธ๋ฑ์Šค ์ƒ์„ฑ, ์‚ญ์ œ ์‹ค์Šต [00:22:37]
6.
์‹œํ€€์Šค๋ž€? [00:30:42]
7.
MySQL์—์„œ ์‹œํ€€์Šค ์ง€์› ํ˜„ํ™ฉ๊ณผ ๋Œ€์•ˆ [00:36:29]
8.
์˜คํ† ์ธํฌ๋ฆฌ๋จผํŠธ์™€ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•œ ์‹œํ€€์Šค ๋Œ€์ฒด ๋ฐฉ๋ฒ• [00:38:37]

์ธ๋ฑ์Šค๋ž€? [00:00:36]

โ€ข
์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œย ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ด์ฃผ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
โ€ข
์ฑ…์˜ ๋ชฉ์ฐจ๋‚˜ ์ƒ‰์ธ๊ณผ ๋น„์Šทํ•œ ์—ญํ• ๋กœ, ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋นจ๋ฆฌ ์ฐพ๊ฒŒ ๋„์™€์ค˜์š”.
โ€ข
์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒ€์ƒ‰๊ณผ ์ •๋ ฌ์ด ๋นจ๋ผ์ง€์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์‚ฝ์ž…์ด๋‚˜ ์ˆ˜์ • ์‹œ ์ธ๋ฑ์Šค๋„ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธ๋˜์–ด์„œ ์•ฝ๊ฐ„์˜ ์ถ”๊ฐ€ ์ž‘์—…๊ณผ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฑ์Šค ์ƒ์„ฑ๊ณผ ์‚ญ์ œ ๋ฐฉ๋ฒ• [00:02:46]

โ€ข
์ธ๋ฑ์Šค๋Š”ย CREATE INDEX ์ธ๋ฑ์Šค๋ช… ON ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋ช…);์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
โ€ข
ํ•œ ๊ฐœ ์ปฌ๋Ÿผ๋ฟ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์„ ๋ฌถ์–ด์„œ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ณ , ์ค‘๋ณต ์—†๋Š” ์œ ๋‹ˆํฌ ์ธ๋ฑ์Šค๋„ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•ด์š”.
โ€ข
์ˆ˜์ •์€ ๋”ฐ๋กœ ์—†๊ณ  ํ•„์š”ํ•˜๋ฉด ์‚ญ์ œ ํ›„ ๋‹ค์‹œ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์‚ญ์ œ๋Š”ย DROP INDEX ์ธ๋ฑ์Šค๋ช… ON ํ…Œ์ด๋ธ”๋ช…;์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์—ฌ๋Ÿฌ ์ธ๋ฑ์Šค๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์‚ญ์ œํ•  ๋•ย ALTER TABLE ํ…Œ์ด๋ธ”๋ช… DROP INDEX ์ธ๋ฑ์Šค๋ช…1, DROP INDEX ์ธ๋ฑ์Šค๋ช…2;ย ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฑ์Šค ์ ์šฉ ์ „ํ›„ ์„ฑ๋Šฅ ๋น„๊ต ์‹ค์Šต [00:04:36]

โ€ข
์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•˜๊ธฐ ์ „๊ณผ ํ›„์— ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋น„๊ตํ•ด ๋ด…๋‹ˆ๋‹ค.
โ€ข
์˜ˆ๋กœ ์ง์› ๋ฐ์ดํ„ฐ์—์„œ ์„ฑ(LastName)๊ณผ ์„ฑ๋ณ„(Gender) ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ๊ณ , ์ธ๋ฑ์Šค ์ „ํ›„ ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
EXPLAINย ๋ช…๋ น์–ด๋กœ ์ฟผ๋ฆฌ๊ฐ€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,ย typeย ์ปฌ๋Ÿผ์ดย ALL์ด๋ฉด ์ธ๋ฑ์Šค ๋ฏธ์‚ฌ์šฉ,ย ref๋‚˜ย range๋ฉด ์ธ๋ฑ์Šค ์‚ฌ์šฉ ์ค‘์ž„์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ฑ์Šค ์ •๋ณด ํ™•์ธ๊ณผ ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ • [00:05:09]

โ€ข
์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„์€ย SET profiling = 1;ย ํ›„ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ,ย SHOW PROFILE;๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์‹คํ–‰ ์‹œ๊ฐ„, CPU ์‚ฌ์šฉ๋Ÿ‰ ๋“ฑ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด ์ธ๋ฑ์Šค ํšจ๊ณผ๋ฅผ ์ˆ˜์น˜๋กœ ๋น„๊ตํ•˜๊ธฐ ์ข‹์•„์š”.
โ€ข
๋˜ํ•œย performance_schemaย ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•ด ๋” ์ž์„ธํ•œ ์ฟผ๋ฆฌ ์‹คํ–‰ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ๋ฑ์Šค ์ƒ์„ฑ, ์‚ญ์ œ ์‹ค์Šต [00:22:37]

โ€ข
์‹ค์ œ๋กœย CREATE INDEX๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค๊ณ ,ย EXPLAIN์œผ๋กœ ์ฟผ๋ฆฌ ๊ณ„ํš ๋ณ€ํ™”๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์ธ๋ฑ์Šค ์ƒ์„ฑ ํ›„ ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ธ๋ฑ์Šค ์ƒ์„ฑ ์ „๋ณด๋‹ค ํ™•์‹คํžˆ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
โ€ข
๋งˆ์ง€๋ง‰์œผ๋กœย DROP INDEX๋กœ ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

์‹œํ€€์Šค๋ž€? [00:30:42]

โ€ข
์‹œํ€€์Šค๋Š”ย ์ž๋™์œผ๋กœ ์ˆœ์ฐจ์ ์ธ ์ˆซ์ž๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
โ€ข
์ฃผ๋กœ ๊ธฐ๋ณธ ํ‚ค ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‹œ์ž‘ ์ˆซ์ž, ์ฆ๊ฐ€ ๋‹จ์œ„, ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’, ๋ฐ˜๋ณต ์—ฌ๋ถ€(์‚ฌ์ดํด) ๋“ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ด 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด 3์”ฉ ์ฆ๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์ตœ๋Œ€๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ๋‹ค์‹œ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋„๋ก ์„ค์ • ๊ฐ€๋Šฅํ•ด์š”.

MySQL์—์„œ ์‹œํ€€์Šค ์ง€์› ํ˜„ํ™ฉ๊ณผ ๋Œ€์•ˆ [00:36:29]

โ€ข
MySQL 8๋ฒ„์ „๋ถ€ํ„ฐ ์‹œํ€€์Šค ๊ฐ์ฒด๊ฐ€ ๋„์ž…๋๋‹ค๊ณ  ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
โ€ข
๋Œ€์‹  MySQL์—์„œ๋Š”ย AUTO_INCREMENTย ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ๊ธฐ๋ณธ ํ‚ค ์ปฌ๋Ÿผ์— ์ž๋™ ์ฆ๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์‹œํ€€์Šค๋ฅผ ์ง์ ‘ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์˜ค๋ผํด, ๋งˆ๋ฆฌ์•„DB(10.3๋ฒ„์ „ ์ด์ƒ) ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜คํ† ์ธํฌ๋ฆฌ๋จผํŠธ์™€ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•œ ์‹œํ€€์Šค ๋Œ€์ฒด ๋ฐฉ๋ฒ• [00:38:37]

โ€ข
MySQL์—์„œ ์‹œํ€€์Šค ๋Œ€์‹ ย AUTO_INCREMENT๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
โ€ข
๋˜๋Š” ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด ์ˆซ์ž๋ฅผ ์ €์žฅํ•˜๊ณ , ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ์ˆœ์ฐจ ๋ฒˆํ˜ธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ดย sequence_numberย ํ…Œ์ด๋ธ”์— ํ˜„์žฌ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๊ณ , ๋ฒˆํ˜ธ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
์ด ๋ฐฉ๋ฒ•์€ ์ง์ ‘ ์‹œํ€€์Šค๋ฅผ ์ง€์›ํ•˜๋Š” DB๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, MySQL ํ™˜๊ฒฝ์—์„œ ์‹œํ€€์Šค ๊ธฐ๋Šฅ์„ ํ‰๋‚ด ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

์ด ์˜์ƒ์—์„œ๋Š” MySQL์—์„œย ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•๊ณผ, ์ธ๋ฑ์Šค ์ƒ์„ฑ/์‚ญ์ œ ๋ฐ ์„ฑ๋Šฅ ์ธก์ • ์‹ค์Šต์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ˆœ์ฐจ์ ์ธ ์ˆซ์ž๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜๋Š”ย ์‹œํ€€์Šคย ๊ฐœ๋…๊ณผ MySQL์—์„œ ์‹œํ€€์Šค ์ง€์› ํ˜„ํ™ฉ, ๊ทธ๋ฆฌ๊ณ  ๋Œ€์ฒด ๋ฐฉ๋ฒ•์œผ๋กœย AUTO_INCREMENT์™€ ํ…Œ์ด๋ธ”์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๋Š” ๊ฒ€์ƒ‰์„ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๋ชฉ์ฐจ ๊ฐ™์€ ์—ญํ• ์ด๊ณ , ์‹œํ€€์Šค๋Š” ๋ฒˆํ˜ธํ‘œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฝ‘์•„์ฃผ๋Š” ๊ธฐ๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์›Œ์š”!