๐Ÿ›ข๏ธDatabase

[Real MySQL 8.0] MySQL ์—”์ง„ ์•„ํ‚คํ…์ฒ˜

DevPoong 2023. 8. 2. 16:27

MySQL ์„œ๋ฒ„๋Š” ํฌ๊ฒŒ ๋จธ๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” MYSQL ์—”์ง„๊ณผ ์†๋ฐœ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์œผ๋กœ๋Š”  InnoDB๊ณผ MyISAM ๋“ฑ์ด ์žˆ๊ณ , ํ•ธ๋“ค๋Ÿฌ API๋ฅผ ๋งŒ์กฑํ•˜๋ฉด ๋ˆ„๊ตฌ๋“ ์ง€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์ถ”๊ฐ€ํ•˜์—ฌ MYSQL ์„œ๋ฒ„์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. MYSQL ์ „์ฒด ๊ตฌ์กฐ

 

MySQL ๊ณ ์œ ์˜ C API๋ถ€ํ„ฐ JDBC๋‚˜ ODBC, ๊ทธ๋ฆฌ๊ณ  .NET์˜ ํ‘œ์ค€ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ,
์ด๋Ÿฌํ•œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ C/C++, PHP, ์ž๋ฐ”, ํŽ„, ํŒŒ์ด์ฌ, ๋ฃจ๋น„, .NET ๋“ฑ ๋ชจ๋“  ์–ธ์–ด๋กœ MYSQL ์„œ๋ฒ„์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›ํ•œ๋‹ค.

MySQL ์—”์ง„

  • Client๋กœ๋ถ€ํ„ฐ์˜ ์ ‘์† ๋ฐ ์ฟผ๋ฆฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปค๋„ฅ์…˜ ํ•ธ๋“ค๋Ÿฌ
  • SQL ํŒŒ์„œ ๋ฐ ์ „์ฒ˜๋ฆฌ๊ธฐ
  • ์ฟผ๋ฆฌ์˜ ์ตœ์ ํ™”๋œ ์‹คํ–‰์„ ์œ„ํ•œ ์˜ตํ‹ฐ๋งˆ์ด์ €

์œ„ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ MySQL ์—”์ง„์˜ ์ค‘์‹ฌ์„ ์ด๋ฃฌ๋‹ค.

MySQL์€ ํ‘œ์ค€ SQL ๋ฌธ๋ฒ•์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ‘œ์ค€ ๋ฌธ๋ฒ•์— ๋”ฐ๋ผ ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ๋Š” ๋‹ค๋ฅธ DBMS์™€ ํ˜ธํ™˜๋˜๋ฉฐ, 
MySQL ์—”์ง„์€ ์š”์ฒญ๋œ SQL ๋ฌธ์žฅ์„ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ์ตœ์ ํ™”ํ•˜๋Š” ๋“ฑ DBMS์˜ ๋‘๋‡Œ์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋ฉฐ MYSQL ์„œ๋ฒ„์—์„œ ๋‹จ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•œ๋‹ค.

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

์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋””์Šคํฌ ์Šคํ† ๋ฆฌ์ง€๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ถ€๋ถ„์€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ์ „๋‹ดํ•œ๋‹ค.
MySQL ์—”์ง„๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด๋‹น ํ…Œ์ด๋ธ”์ด ์‚ฌ์šฉํ•  ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์ง€์ •ํ•˜๋ฉด ์ดํ›„ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ฝ๊ธฐ ์ž‘์—…์ด๋‚˜ ๋ณ€๊ฒฝ ์ž‘์—…์€ ์ •์˜๋œ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ์ฒ˜๋ฆฌํ•œ๋‹ค.

CREATE TABLE member (age INT) ENGINE=INNODB;

๊ฐ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค.

  • MyISAM: ํ‚ค ์บ์‹œ
  • InnoDB: ๋ฒ„ํผ ํ’€

ํ•ธ๋“ค๋Ÿฌ API

MYSQL ์—”์ง„์˜ ์ฟผ๋ฆฌ ์‹คํ–‰๊ธฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์ฝ์–ด์•ผ ํ•  ๋•Œ๋Š” ๊ฐ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์— ์“ฐ๊ธฐ ๋˜๋Š” ์ฝ๊ธฐ๋ฅผ ์š”์ฒญํ•˜๋Š”๋ฐ,
์ด๋ฅผ Handler ์š”์ฒญ์ด๋ผ ํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” API๋ฅผ Handler API๋ผ๊ณ  ํ•œ๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด, ์ด ํ•ธ๋“ค๋Ÿฌ API๋ฅผ ํ†ตํ•ด ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด MYSQL ์—”์ง„๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค.

2. MySQL ์Šค๋ ˆ๋”ฉ ๊ตฌ์กฐ

MySQL ์„œ๋ฒ„๋Š” Process ๊ธฐ๋ฐ˜์ด ์•„๋‹ˆ๋ผ Thread ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, Foreground Thread์™€ Background Thread ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Foreground ์Šค๋ ˆ๋“œ (ํด๋ผ์ด์–ธํŠธ ์Šค๋ ˆ๋“œ)

Foreground ์Šค๋ ˆ๋“œ๋Š” ์ตœ์†Œํ•œ MySQL ์„œ๋ฒ„์— ์ ‘์†๋œ ํด๋ผ์ด์–ธํŠธ์˜ ์ˆ˜๋งŒํผ ์กด์žฌํ•˜๋ฉฐ, ์ฃผ๋กœ ๊ฐ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” ์ฟผ๋ฆฌ ๋ฌธ์žฅ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ๋งˆ์น˜๊ณ  ์ปค๋„ฅ์…˜์„ ์ข…๋ฃŒํ•˜๋ฉด ํ•ด๋‹น ์ปค๋„ฅ์…˜์„ ๋‹ด๋‹นํ•˜๋˜ ์Šค๋ ˆ๋“œ๋Š” ๋‹ค์‹œ ์Šค๋ ˆ๋“œ ์บ์‹œ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค.
์ด๋•Œ ์ด๋ฏธ ์Šค๋ ˆ๋“œ ์บ์‹œ์— ์ผ์ • ๊ฐœ์ˆ˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋Œ€๊ธฐ์ค‘์ด๋ฉด ์บ์‹œ์— ๋„ฃ์ง€ ์•Š๊ณ  ์Šค๋ ˆ๋“œ๋ฅผ ์ข…๋ฃŒ์‹œ์ผœ ์ผ์ • ๊ฐœ์ˆ˜๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

ํฌ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ MySQL์˜ ๋ฐ์ดํ„ฐ ๋ฒ„ํผ๋‚˜ ์บ์‹œ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๋ฉฐ, ๋ฒ„ํผ๋‚˜ ์บ์‹œ์— ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์ง์ ‘ ๋””์Šคํฌ์˜ ๋ฐ์ดํ„ฐ๋‚˜ ์ธ๋ฑ์Šค ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์™€์„œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

MyISAM ํ…Œ์ด๋ธ”์€ ๋””์Šคํฌ ์“ฐ๊ธฐ ์ž‘์—…๊นŒ์ง€ ํฌ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ,
InnoDB ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ ๋ฒ„ํผ๋‚˜ ์บ์‹œ๊นŒ์ง€๋งŒ ํฌ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋ฒ„ํผ๋กœ๋ถ€ํ„ฐ ๋””์Šคํฌ๊นŒ์ง€ ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค.

Background ์Šค๋ ˆ๋“œ

InnoDB์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž‘์—…์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.

  • Insert Buffer๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ์Šค๋ ˆ๋“œ
  • ๋กœ๊ทธ๋ฅผ Disk๋กœ ๊ธฐ๋กํ•˜๋Š” ์Šค๋ ˆ๋“œ
  • InnoDB Buffer Pool์˜ ๋ฐ์ดํ„ฐ๋ฅผ Disk์— ๊ธฐ๋กํ•˜๋Š” ์Šค๋ ˆ๋“œ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„ํผ๋กœ ์ฝ์–ด ์˜ค๋Š” ์Šค๋ ˆ๋“œ
  • ์ž ๊ธˆ์ด๋‚˜ ๋ฐ๋“œ๋ฝ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์Šค๋ ˆ๋“œ

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๋Š” Log Thread์™€ Write Thread์ด๋‹ค.
InnoDB์—์„œ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ž‘์—…์€ ์ฃผ๋กœ Foreground Thread์—์„œ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ ์Šค๋ ˆ๋“œ๋Š” ๋งŽ์ด ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์ง€๋งŒ,
Write Thread์˜ ๊ฒฝ์šฐ ์•„์ฃผ ๋งŽ์€ ์ž‘์—…์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์ธ ๋‚ด์žฅ ๋””์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” 2~4 ์ •๋„๋ฅผ ์„ค์ •ํ•˜๊ณ , DAS๋‚˜ SAN๊ณผ ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•  ๋•Œ๋Š” ๋””์Šคํฌ๋ฅผ ์ตœ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์„ค์ •ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„์ค‘ ๋ฐ์ดํ„ฐ์˜ ์“ฐ๊ธฐ ์ž‘์—…์€ ์ง€์—ฐ(๋ฒ„ํผ๋ง)๋˜์–ด ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ์ฝ๊ธฐ ์ž‘์—…์€ ์ ˆ๋Œ€ ์ง€์—ฐ๋  ์ˆ˜ ์—†๋‹ค.
๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์ธ ์ƒ์šฉ DBMS์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ ์“ฐ๊ธฐ ์ž‘์—…์„ ๋ฒ„ํผ๋งํ•ด์„œ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋˜์–ด ์žˆ๊ณ  InnoDB๋„ ๊ทธ๋ ‡๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ, MyISAM์€ ๊ทธ๋ ‡์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ๊ฐ€ ์“ฐ๊ธฐ ์ž‘์—…๊นŒ์ง€ ํ•จ๊ป˜ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, InnoDB๋Š” INSERT, UPDATE, DELETE ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋””์Šคํฌ์— ์ €์žฅ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ MyISAM์˜ ๊ฒฝ์šฐ์—๋Š” ์“ฐ๊ธฐ ๋ฒ„ํผ๋ง ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์„œ ๋Œ€๊ธฐํ•ด์•ผ ํ•œ๋‹ค.

3. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ์‚ฌ์šฉ ๊ตฌ์กฐ

MySQL์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํฌ๊ฒŒ ๊ธ€๋กœ๋ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.
๊ธ€๋กœ๋ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ MySQL ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜๋ฉด์„œ OS๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋œ๋‹ค.
๊ธ€๋กœ๋ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ MySQL ์„œ๋ฒ„ ๋‚ด์— ์กด์žฌํ•˜๋Š” ๋งŽ์€ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์ธ์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋œ๋‹ค.

๊ธ€๋กœ๋ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

์ผ๋ฐ˜์ ์œผ๋กœ ํฌ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ์˜ ์ˆ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋งŒ ํ• ๋‹น๋œ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ 2๊ฐœ์ด์ƒ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํฌ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ์™€๋Š” ๋ฌด๊ด€ํ•˜๋ฉฐ ์ƒ์„ฑ๋œ ๊ธ€๋กœ๋ฒŒ ์˜์—ญ์ด ์—ฌ๋Ÿฌ๊ฐœ๋”๋ผ๋„ ๋ชจ๋“  ์Šค๋ ˆ๋“œ์— ์˜ํ•ด ๊ณต์œ ๋œ๋‹ค.
๊ธ€๋กœ๋ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ์ข…๋ฅ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ํ…Œ์ด๋ธ” ์บ์‹œ
  • InnoDB ๋ฒ„ํผ ํ’€
  • InnoDB ์–ด๋Œ‘ํ‹ฐ๋ธŒ ํ•ด์‹œ ์ธ๋ฑ์Šค
  • InnoDB ๋ฆฌ๋‘ ๋กœ๊ทธ ๋ฒ„ํผ

 

๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

์„ธ์…˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋ผ๊ณ ๋„ ํ‘œํ˜„ํ•˜๋ฉฐ, MySQL ์„œ๋ฒ„์ƒ์— ์กด์žฌํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ MySQL ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„๋‚ด์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ ์ปค๋„ฅ์…˜์œผ๋กœ๋ถ€ํ„ฐ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ ์Šค๋ ˆ๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํด๋ผ์ด์–ธํŠธ ์Šค๋ ˆ๋“œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํด๋ผ์ด์–ธํŠธ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋ผ๊ณ  ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ MySQL ์„œ๋ฒ„์™€์˜ ์ปค๋„ฅ์…˜์„ ์„ธ์…˜์ด๋ผ๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์„ธ์…˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

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

๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ์ข…๋ฅ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ์ •๋ ฌ ๋ฒ„ํผ
  • ์กฐ์ธ ๋ฒ„ํผ
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ ์บ์‹œ
  • ๋„คํŠธ์›Œํฌ ๋ฒ„ํผ

4. ํ”Œ๋Ÿฌ๊ทธ์ธ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๋ชจ๋ธ

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

์ปดํฌ๋„ŒํŠธ

MySQL 8.0 ๋ถ€ํ„ฐ๋Š” ๊ธฐ์กด์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋Œ€์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ง€์›๋œ๋‹ค. MySQL ์„œ๋ฒ„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ, ์ปดํฌ๋„ŒํŠธ๋Š” ์ด๋Ÿฌํ•œ ๋‹จ์ ๋“ค์„ ๋ณด์™„ํ•ด์„œ ๊ตฌํ˜„๋˜์—ˆ๋‹ค.

5. ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ตฌ์กฐ

MySQL ์—”์ง„์ด ๊ฐ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๊ฑฐ๋‚˜ ์ €์žฅํ•˜๋„๋ก ๋ช…๋ นํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด์•ผ ํ•œ๋‹ค.
MyISAM์ด๋‚˜ InnoDB์™€ ๊ฐ™์ด ๋‹ค๋ฅธ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋”๋ผ๋„ MySQL์˜ ์ฒ˜๋ฆฌ ๋‚ด์šฉ์„ ๋™์ผํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ์˜์—ญ์˜ ์ฒ˜๋ฆฌ ์ฐจ์ด๊ฐ€ ์žˆ์„ ๋ฟ์ด๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ๋ณต์žกํ•œ GROUP By๋‚˜ ORDER BY ๋“ฑ ๋ณต์žกํ•œ ์ฒ˜๋ฆฌ๋Š” ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์˜์—ญ์ด ์•„๋‹ˆ๋ผ MySQL ์—”์ง„์˜ ์ฒ˜๋ฆฌ ์˜์—ญ์ธ SQL ์‹คํ–‰๊ธฐ์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค.

์ฟผ๋ฆฌ ํŒŒ์„œ

์ฟผ๋ฆฌ ํŒŒ์„œ๋Š” ์‚ฌ์šฉ์ž ์š”์ฒญ์œผ๋กœ ๋“ค์–ด์˜จ ์ฟผ๋ฆฌ ๋ฌธ์žฅ์„ ํ† ํฐ(MySQL์ด ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์œ„์˜ ์–ดํœ˜๋‚˜ ๊ธฐํ˜ธ)์œผ๋กœ ๋ถ„๋ฆฌํ•ด ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ์ฟผ๋ฆฌ ๋ฌธ์žฅ์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋Š” ์ด ๋‹จ๊ณ„์—์„œ ๋ฐœ๊ฒฌ๋˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ฒŒ ๋œ๋‹ค.

์ „์ฒ˜๋ฆฌ๊ธฐ

์ฟผ๋ฆฌ ํŒŒ์„œ ๊ณผ์ •์—์„œ ๋งŒ๋“ค์–ด์ง„ ํŒŒ์„œ ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฟผ๋ฆฌ ๋ฌธ์žฅ์— ๊ตฌ์กฐ์ ์ธ ๋ฌธ์ œ์ ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๊ฐ ํ† ํฐ์„ ํ…Œ์ด๋ธ” ์ด๋ฆ„์ด๋‚˜ ์ปฌ๋Ÿผ ์ด๋ฆ„, ๋˜๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๊ฐœ์ฒด๋ฅผ ๋งคํ•‘ํ•ด ํ•ด๋‹น ๊ฐ์ฒด์˜ ์กด์žฌ ์—ฌ๋ถ€์™€ ๊ฐ์ฒด์˜ ์ ‘๊ทผ ๊ถŒํ•œ๋“ฑ์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์ด ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์‹ค์ œ ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ถŒํ•œ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฐœ์ฒด์˜ ํ† ํฐ์€ ์ด ๋‹จ๊ณ„์—์„œ ๊ฑธ๋Ÿฌ์ง„๋‹ค.

์˜ตํ‹ฐ๋งˆ์ด์ €

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์œผ๋กœ ๋“ค์–ด์˜จ ์ฟผ๋ฆฌ ๋ฌธ์žฅ์„ ์ €๋ ดํ•œ ๋น„์šฉ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋ฉฐ DBMS์˜ ๋‘๋‡Œ์— ํ•ด๋‹นํ•œ๋‹ค.

์‹คํ–‰ ์—”์ง„

์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ๋‘๋‡Œ๋ผ๋ฉด ์‹คํ–‰ ์—”์ง„๊ณผ ํ•ธ๋“ค๋Ÿฌ๋Š” ์†๊ณผ ๋ฐœ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. 
์‹คํ–‰ ์—”์ง„์€ ๋งŒ๋“ค์–ด์ง„ ๊ณ„ํš๋Œ€๋กœ ๊ฐ ํ•ธ๋“ค๋Ÿฌ์—๊ฒŒ ์š”์ฒญํ•ด์„œ ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ๋˜ ๋‹ค๋ฅธ ํ•ธ๋“ค๋Ÿฌ ์š”์ฒญ์˜ ์ž…๋ ฅ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ (ํ•ธ๋“ค๋Ÿฌ)

MySQL ์„œ๋ฒ„์˜ ๊ฐ€์žฅ ๋ฐ‘๋‹จ์—์„œ ์‹คํ–‰ ์—”์ง„์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ๋กœ ์ €์žฅํ•˜๊ณ  ์ฝ์–ด์˜ค๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.
ํ•ธ๋“ค๋Ÿฌ๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, MyISAM ํ…Œ์ด๋ธ”์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•ธ๋“ค๋Ÿฌ๊ฐ€ MyISAM ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ๋˜๊ณ  InnoDB ํ…Œ์ด๋ธ”์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋œ๋‹ค.

6. ์ฟผ๋ฆฌ ์บ์‹œ

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

MySQL 8.0 ์—์„œ๋Š” ์ฟผ๋ฆฌ ์บ์‹œ๋Š” ์™„์ „ํžˆ ์ œ๊ฑฐ๋˜์—ˆ๋‹ค.

7. ์Šค๋ ˆ๋“œ ํ’€

์Šค๋ ˆ๋“œ ํ’€์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์Šค๋ ˆ๋“œ ๊ฐœ์ˆ˜๋ฅผ ์ค„์—ฌ์„œ ๋™์‹œ ์ฒ˜๋ฆฌ๋˜๋Š” ์š”์ฒญ์ด ๋งŽ๋‹ค ํ•˜๋”๋ผ๋„ MySQL ์„œ๋ฒ„์˜ CPU๊ฐ€ ์ œํ•œ๋œ ๊ฐœ์ˆ˜์˜ ์Šค๋ ˆ๋“œ ์ฒ˜๋ฆฌ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์„œ ์„œ๋ฒ„์˜ ์ž์› ์†Œ๋ชจ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค.

์Šค๋ ˆ๋“œ ํ’€์ด ์‹ค์ œ ์„œ๋น„์Šค์—์„œ ๋ˆˆ์— ๋„๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒฝ์šฐ๋Š” ๋“œ๋ฌผ๋‹ค. ์Šค์ผ€์ค„๋ง ๊ณผ์ •์—์„œ CPU ์‹œ๊ฐ„์„ ์ œ๋Œ€๋กœ ํ™•๋ณดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ฟผ๋ฆฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋” ๋Š๋ ค์ง€๋Š” ์‚ฌ๋ก€๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

์ œํ•œ๋œ ์ˆ˜์˜ ์Šค๋ ˆ๋“œ๋งŒ์œผ๋กœ CPU๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ ์ ˆํžˆ ์œ ๋„ํ•œ๋‹ค๋ฉด CPU์˜ ํ”„๋กœ์„ธ์Šค ์นœํ™”๋„๋„ ๋†’์ด๊ณ  ์šด์˜์ฒด์ œ ์ž…์žฅ์—์„œ๋Š” ๋ถˆํ•„์š”ํ•œ Context Switch๋ฅผ ์ค„์—ฌ์„œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค.

์Šค๋ ˆ๋“œ ๊ทธ๋ฃน์˜ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์Šค๋ ˆ๋“œ ํ’€์€ ํ•ด๋‹น ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน์— ์ƒˆ๋กœ์šด ์ž‘์—… ์Šค๋ ˆ๋“œ(Worker Thread)๋ฅผ ์ถ”๊ฐ€ํ• ์ง€, ์•„๋‹ˆ๋ฉด ๊ธฐ์กด ์ž‘์—… ์Šค๋ ˆ๋“œ๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด์ง€ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ด์•ผ ํ•œ๋‹ค. ์Šค๋ ˆ๋“œ ํ’€์˜ ํƒ€์ด๋จธ ์Šค๋ ˆ๋“œ๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•ด์„œ thread_pool_stall_limit ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์— ์ •์˜๋œ ๋ฐ€๋ฆฌ์ดˆ๋งŒํผ ์ž‘์—… ์Šค๋ ˆ๋“œ๊ฐ€ ์ง€๊ธˆ ์ฒ˜๋ฆฌ์ค‘์ธ ์ž‘์—…์„ ๋๋‚ด์ง€ ๋ชปํ•˜๋ฉด ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์„œ ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด๋•Œ ์ „์ฒด ์Šค๋ ˆ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” max ๊ฐ’์„ ๋„˜์„ ์ˆ˜ ์—†๋‹ค. 
๋”ฐ๋ผ์„œ, ๋ชจ๋“  ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ž‘์—…์„ ์ฒ˜๋ฆฌ์ค‘์ด๋ผ๋ฉด ์ƒˆ๋กœ์šด ์ฟผ๋ฆฌ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋”๋ผ๋„ thread_pool_stall_limit ๋ฐ€๋ฆฌ์ดˆ๋งŒํผ์€ ๊ธฐ๋‹ค๋ ค์•ผ๋งŒ ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์‘๋‹ต ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•˜๋‹ค๋ฉด ํ•ด๋‹น ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋ฅผ ์ ์ ˆํžˆ ๋‚ฎ์ถฐ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 0์— ๊ฐ€๊น๊ฒŒ ์„ค์ •ํ•  ๊ฒƒ์ด๋ผ๋ฉด ์ฐจ๋ผ๋ฆฌ ์Šค๋ ˆ๋“œ ํ’€์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฒŒ ์ข‹๋‹ค.

MySQL ์„œ๋ฒ„ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์—๋””์…˜์—์„œ๋งŒ ์Šค๋ ˆ๋“œ ํ’€์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋””์…˜์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ํ•˜๋‹ค.

8. ํŠธ๋žœ์žญ์…˜ ์ง€์› ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

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

๋”ฐ๋ผ์„œ, MySQL 8.0 ๋ถ€ํ„ฐ๋Š” ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ •๋ณด๋‚˜ ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ชจ๋‘ InnoDB์˜ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๋„๋ก ๊ฐœ์„ ํ•˜์˜€๋‹ค.
๋˜ํ•œ, MySQL ์„œ๋ฒ„๊ฐ€ ์ž‘๋™ํ•˜๋Š”๋ฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ํ…Œ์ด๋ธ”๋“ค์„ ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ๊ณผ ๊ถŒํ•œ์— ๊ด€๋ จ๋œ ํ…Œ์ด๋ธ”๋“ค์ด ์žˆ๋‹ค. MySQL 8.0 ๋ถ€ํ„ฐ๋Š” ์ด ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ” ๋˜ํ•œ InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐœ์„ ํ•˜์˜€๋‹ค.