๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒพBackEnd/โœ…DataBase

MySQL ์—”์ง„ ์•„ํ‚คํ…์ฒ˜

by MuGeon Kim 2023. 2. 10.
๋ฐ˜์‘ํ˜•

๐Ÿšฉ MySQL ์—”์ง„ ์•„ํ‚คํ…์ฒ˜

 

MySQL์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž


MySQL ์„œ๋ฒ„๋Š” ํฌ๊ฒŒ MySQL ์—”์ง„ + ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ์žˆ๋‹ค.

 

MySQL์—”์ง„

  • ํฌ๊ฒŒ 3๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. (์ฟผ๋ฆฌ ํŒŒ์‹ฑ, ์ฟผ๋ฆฌ ์˜คํ‹ฐ๋งˆ์ด์ง•, ์ฟผ๋ฆฌ ์‹คํ–‰์„ ํ•œ๋‹ค.)
์ฟผ๋ฆฌ ํŒŒ์‹ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ DB์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๋ฉด SQL์ด ์ดํ•ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•œ๋‹ค.
์ฟผ๋ฆฌ ์˜คํ‹ฐ๋งˆ์ด์ง• ํŒŒ์‹ฑ์„ ํ†ตํ•ด ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์˜คํ‹ฐ๋งˆ์ด์ง•์„ ํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•œ๋‹ค.
์ฟผ๋ฆฌ ์‹คํ–‰ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

์Šคํ† ๋ฆฌ์ง€ ์—”์ง„

MyISAM ์ฒ˜์Œ์— ๊ธฐ๋ณธ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉ์„ ํ•˜์˜€๋‹ค. ํ‚ค ์บ์‹ฑ์ด๋ผ๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๋ฉฐ ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
InnoDB ๋ฒ„ํผ๋ง, FK์ œ์•ฝ ์กฐ๊ฑด, ์ถฉ๋Œ ๋ณต๊ตฌ, ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜์—ฌ ์ฃผ๋กœ InnoDB๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ๋ฅผ ํ†ตํ•˜์—ฌ ๋””์ŠคํฌI/O ์ž‘์—…์„ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ(๋ฒ„ํผ ํ’€)

 

InnoDB์— ๋Œ€ํ•ด ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž


  • ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜์—ฌ ์š”์ฆ˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์„ InnoDB๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

1. ๋ฒ„ํผ๋ง

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

 

2. FK์ œ์•ฝ ์กฐ๊ฑด

  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์™ธ๋ถ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์™ธ๋ถ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ณ  ์ผ๊ด€์„ฑ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

3. ์ถฉ๋Œ ๋ณต๊ตฌ

  • MYSQL์ด ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ข…๋ฃŒ๊ฐ€ ๋˜๋ฉด InnoDB๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•˜์—ฌ ์ผ๊ด€๋œ ์ƒํƒœ๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

4. ํŠธ๋žœ์žญ์…˜

  • Insert์ฟผ๋ฆฌ๋กœ ์‹คํ–‰ํ•œ๋‹ค.
  • ๊ธฐ์กด์— ๋ฐ์ดํ„ฐ๋ฅผ ์–ธ๋‘๋กœ๊ทธ์— ์ €์žฅํ•œ๋‹ค.
  • ์ด๋•Œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์„ค์ •๋œ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„
  • READ_UNCOMMITTED ๋ผ๋ฉด InnoDB ๋ฒ„ํผํ’€ ๊ฐ’์„ ์ฝ๋Š”๋‹ค.
  • READ_COMMITTED, REATABLE_READ, SERIALAZBLE ์ด๋ผ๋ฉด ์–ธ๋‘ ๋กœ๊ทธ์— ์žˆ๋Š” ๊ฐ’์„ ์ฝ์Šต๋‹ˆ๋‹ค.
๋ฐ˜์‘ํ˜•

'๐ŸŒพBackEnd > โœ…DataBase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MySQL - ์ธ๋ฑ์Šค  (0) 2023.02.28
MySQL - ๊ฒฉ๋ฆฌ ์ˆ˜์ค€  (0) 2023.02.28
MYSQL - LOCK  (0) 2023.02.28