DB/MySQL

[MySQL] InnoDB ๋ฒ„ํผ ํ’€

YeopJu 2024. 4. 4. 07:58
๋ฐ˜์‘ํ˜•

๋ฒ„ํผ ํ’€์€ ๋””์Šคํฌ์˜ ๋ฐ์ดํ„ฐ์™€ ์ธ๋ฑ์Šค๋ฅผ ์บ์‹œํ•˜๋Š” ์—ญํ• ๊ณผ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ง€์—ฐ์‹œ์ผœ ์ผ๊ด„์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ฟผ๋ฆฌ๋Š” ๋žœ๋คํ•œ ๋””์Šคํฌ ์ž‘์—…์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ํ•˜์ง€๋งŒ ๋ฒ„ํผ ํ’€์ด ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ๋žœ๋คํ•œ ๋””์Šคํฌ ์ž‘์—…์˜ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ ๋ฐ–์—๋„ InnoDB์˜ ๋ฒ„ํผ ํ’€์€ ๋งŽ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค.

 

๋ฒ„ํผ ํ’€์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ์œ„์น˜ํ•˜๋ฉฐ ํฌ๊ฒŒ ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜จ ๋ฐ์ดํ„ฐ์™€ ์ธ๋ฑ์Šค๋ฅผ ์บ์‹œํ•ด๋‘๋Š” '๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ๋ฒ„ํผ'์™€ MVCC๋ฅผ ์œ„ํ•œ '์–ธ๋‘ ๋กœ๊ทธ', ์ธ๋ฑ์Šค ์—…๋ฐ์ดํŠธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ '์ธ์„œํŠธ(์ฒด์ธ์ง€) ๋ฒ„ํผ'๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

๋ฒ„ํผ ํ’€ ์ž์ฒด๋Š” ์„ธ๋งˆํฌ์–ด๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ ๊ธฐ์กด 1๊ฐœ์˜ ์ธ์Šคํ„ด์Šค์—์„œ, ์ตœ๊ทผ์—๋Š” ๊ธฐ๋ณธ 8๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ง€์›ํ•œ๋‹ค.

 

 


 

 

โ˜‘๏ธ ๋ฒ„ํผ ํ’€ ํŽ˜์ด์ง€ ์ €์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜ (๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ๋ฒ„ํผ)

 

๋ฒ„ํผ ํ’€์€ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํŠน์ • ์‚ฌ์ด์ฆˆ์˜ ํŽ˜์ด์ง€๋กœ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๊ฐ ํŽ˜์ด์ง€๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค.

  • LRU ๋ฆฌ์ŠคํŠธ(Least Recently Used) : New(Most Recently Used) + Old (Least Recently Used)
  • ํ”Œ๋Ÿฌ์‹œ ๋ฆฌ์ŠคํŠธ : ๋”ํ‹ฐ ํŽ˜์ด์ง€ ๋ชฉ๋ก
  • ํ”„๋ฆฌ ๋ฆฌ์ŠคํŠธ : ๋น„์–ด์žˆ๋Š” ํŽ˜์ด์ง€

 

 

๐Ÿ’  LRU ๋ฆฌ์ŠคํŠธ

 

LRU ๋ฆฌ์ŠคํŠธ์˜ ๋ชฉ์ ์€ ํ•œ๋ฒˆ ์ฝ์–ด์˜จ ํŽ˜์ด์ง€๋ฅผ ์ตœ๋Œ€ํ•œ ์˜ค๋žซ๋™์•ˆ ๋ฒ„ํผํ’€์— ์ €์žฅํ•ด์„œ ๋””์Šคํฌ ์ ‘๊ทผ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค.

 

1. ํ•„์š”ํ•œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๊ฐ€ ๋ฒ„ํผ ํ’€(LRU ๋ฆฌ์ŠคํŠธ)์— ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.

  • ์–ด๋Œ‘ํ‹ฐํŠธ ํ•ด์‹œ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด ํƒ€๊ฒŸ ํŽ˜์ด์ง€๋ฅผ ์กฐํšŒํ•œ๋‹ค.
  • ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ B-Tree ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด ๋ฒ„ํผ ํ’€์—์„œ ํƒ€๊ฒŸ ํŽ˜์ด์ง€๋ฅผ ์กฐํšŒํ•œ๋‹ค.

2. ํŽ˜์ด์ง€๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ MRU์˜ ํ—ค๋“œ๋กœ ์˜ฌ๋ฆฐ๋‹ค.

3. ํŽ˜์ด์ง€๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์™€์„œ ๋ฒ„ํผํ’€์— ์ ์žฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ํฌ์ธํ„ฐ๋ฅผ LRU์˜ ํ—ค๋“œ์— ์ถ”๊ฐ€ํ•˜๊ณ , ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์‹ค์ œ๋กœ ์ฝ๋Š”๋‹ค๋ฉด ๊ทธ ๋•Œ MRU์˜ ํ—ค๋“œ ๋ถ€๋ถ„์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

  • ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋ฒ„ํผํ’€์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง€ ๊ณต๊ฐ„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์ ‘๊ทผ์ด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŽ˜์ด์ง€๋ฅผ ์„ ์ •ํ•˜์—ฌ ๋ฒ„ํผํ’€์—์„œ ์ œ๊ฑฐํ•˜๊ณ , ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„์ง€์ ์— ์‚ฝ์ž…ํ•˜๋Š”๋ฐ ์ด๋ฅผ midpoint insertion์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋˜ํ•œ ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ MRU์™€ LRU๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ์ ‘๊ทผ ๋˜์—ˆ๋‹ค๋ฉด, ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ์ธ๋ฑ์Šค ํ‚ค๋ฅผ ์–ด๋Œ‘ํ‹ฐ๋ธŒ ํ•ด์‹œ ์ธ๋ฑ์Šค์— ์ถ”๊ฐ€ํ•œ๋‹ค. 

 

โ€ป LRU ๋ฆฌ์ŠคํŠธ ํ”Œ๋Ÿฌ์‹œ

 

InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ ๋”ํ‹ฐ ํŽ˜์ด์ง€ ํ”Œ๋Ÿฌ์‹œ๋ฅผ ์œ„ํ•ด ํ”Œ๋Ÿฌ์‹œ ๋ฆฌ์ŠคํŠธ ํ”Œ๋Ÿฌ์‹œ์™€ LRU ๋ฆฌ์ŠคํŠธ ํ”Œ๋Ÿฌ์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ์ค‘ LRU ๋ฆฌ์ŠคํŠธ ํ”Œ๋Ÿฌ์‰ฌ๋Š” ์‚ฌ์šฉํ•œ์ง€ ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋“ค(๋”ํ‹ฐ ํŽ˜์ด์ง€)์„ ์ œ๊ฑฐํ•ด์„œ Free ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•๋ณดํ•˜๋Š” ์ž‘์—…์ด๋‹ค.

  1. LRU ๋ฆฌ์ŠคํŠธ์˜ ๋ ๋ถ€๋ถ„ ~ ์ตœ๋Œ€ innodb_lru_scan_depth๋งŒํผ ํŽ˜์ด์ง€๋ฅผ ์Šค์บ”
  2. ๋”ํ‹ฐ ํŽ˜์ด์ง€๋Š” ๋””์Šคํฌ์— ๋™๊ธฐํ™”, ํด๋ฆฐ ํŽ˜์ด์ง€๋Š” ์ฆ‰์‹œ ํ”„๋ฆฌ ๋ฆฌ์ŠคํŠธ๋กœ ํŽ˜์ด์ง€ ์ด๋™. 

 

 

 

 

 

 

๐Ÿ’  ํ”Œ๋Ÿฌ์‹œ ๋ฆฌ์ŠคํŠธ

 

๋”ํ‹ฐ ํŽ˜์ด์ง€์˜ ํŽ˜์ด์ง€ ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜จ ํ›„, LRU ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ํŽ˜์ด์ง€ ์ค‘ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ๊ฐ€ํ•ด์ง„ ํŽ˜์ด์ง€๋Š” ํ”Œ๋Ÿฌ์‹œ ๋ฆฌ์ŠคํŠธ์— ๊ด€๋ฆฌ๋˜๊ณ  ํŠน์ • ์‹œ์ ์ด ๋˜๋ฉด ๋””์Šคํฌ๋กœ ๊ธฐ๋ก๋˜์–ด์•ผ ํ•œ๋‹ค.

 

๋”ํ‹ฐ ํŽ˜์ด์ง€๊ฐ€ ํ”Œ๋Ÿฌ์‹œ ๋˜๋Š” ์‹œ์ ์€ ์ฒดํฌ ํฌ์ธํŠธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์„œ ๋”ํ‹ฐ ํŽ˜์ด์ง€ ์ž์ฒด๊ฐ€ ํ”Œ๋Ÿฌ์‹œ ๋˜๋Š” ๊ฒฝ์šฐ๋‹ค. ์ด ๋•Œ, ๋”ํ‹ฐ ํŽ˜์ด์ง€์— ์ €์žฅ๋œ ๋ณ€๊ฒฝ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ ๋””์Šคํฌ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋™๊ธฐํ™” ๋œ๋‹ค. ์ดํ›„ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฆฌ๋‘ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜๊ณ , ๋ฒ„ํผ ํ’€์˜ ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€์—๋„ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•œ๋‹ค.

๋”๋ณด๊ธฐ

์ฒดํฌ ํฌ์ธํŠธ์˜ ๋‘๊ฐ€์ง€ ์œ ํ˜•

  • Sharp Checkpoint
    • ๋ชจ๋“  ๋”ํ‹ฐ ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ์— ๋™๊ธฐํ™” ํ•œ๋‹ค.
    • ์ด ๋•Œ, DB ์„œ๋ฒ„์˜ ๋™์ž‘์ด ์ผ์‹œ ์ค‘๋‹จ๋˜๋ฉฐ MySQL์ด ์ข…๋ฃŒ๋  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • Fuzzy CheckPoint
    • ๋”ํ‹ฐ ํŽ˜์ด์ง€๋ฅผ ์ผ๋ถ€๋งŒ ๋””์Šคํฌ๋กœ ๋™๊ธฐํ™” ํ•œ๋‹ค. 
    • ์กฐ๊ธˆ์”ฉ ์˜ฎ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋œํ•˜๊ณ , DB๋„ ์ค‘๋‹จ์—†์ด ๊ณ„์† ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 
    • Fuzzy CheckPoint์˜ ๋ฐœ์ƒ ์ƒํ™ฉ
      • Master Thread CheckPoint : ๋งˆ์Šคํ„ฐ ์“ฐ๋ ˆ๋“œ๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ Flush List ํ™•์ธํ•˜์—ฌ ์ผ์ • ๋น„์œจ๋งŒํผ์˜ Dirty Page๋ฅผ ๋™๊ธฐํ™”ํžŒ๋‹ค.
      • FLUSH_LRU_LIST CheckPoint : Free Page ๊ฐœ์ˆ˜๊ฐ€ ์•ฝ 100๊ฐœ ์ดํ•˜๋กœ ์—ฌ์œ  ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ, LRU List์˜ Old ์˜์—ญ๋ถ€ํ„ฐ ์ผ์ • ์ˆ˜์น˜๋งŒํผ Scan ํ•œ ํ›„ ๋”ํ‹ฐ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ฒดํฌ ํฌ์ธํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
      • Flush CheckPoint : Redo Log ํŒŒ์ผ์ด ๊ฑฐ์˜ ๊ฐ€๋“ ์ฐจ์„œ, Redo Log ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค. 
      • Dirty Page too much Checkpoint : ๋ฒ„ํผ ํ’€ ๊ณต๊ฐ„ ๋Œ€๋น„ ๋”ํ‹ฐ ํŽ˜์ด์ง€ ๋น„์œจ์ด ํŠน์ • ์ˆ˜์น˜์— ๋„๋‹ฌํ•˜๋ฉด ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

 

Double Write Buffer

 

 

Partial-page (Torn-page)

ํ•˜๋“œ์›จ์–ด์˜ ์˜ค์ž‘๋™์ด๋‚˜ ์‹œ์Šคํ…œ์˜ ๋น„์ •์ƒ ์ข…๋ฃŒ ๋“ฑ์œผ๋กœ ํŽ˜์ด์ง€๊ฐ€ ์ผ๋ถ€๋งŒ ๊ธฐ๋ก๋˜๋Š” ํ˜„์ƒ์„ ํŒŒ์…œ ํŽ˜์ด์ง€(Partial-page) ํ˜น์€ ํ†ค ํŽ˜์ด์ง€(Torn-page)๋ผ๊ณ  ํ•œ๋‹ค.

 

 

Double Write

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•ด ํŒŒ์…œ ํŽ˜์ด์ง€์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฃผ๋กœ ํ”Œ๋Ÿฌ์‹œ ๋ฆฌ์ŠคํŠธ ํ”Œ๋Ÿฌ์‹œ์— ์‚ฌ์šฉ๋œ๋‹ค.

  1. ์‹ค์ œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๊ธฐ ์ „์—, ํ”Œ๋Ÿฌ์‹œํ•  ๋”ํ‹ฐ ํŽ˜์ด์ง€๋“ค์„ ์šฐ์„  ๋ฌถ์–ด์„œ ํ•œ ๋ฒˆ์˜ ๋””์Šคํฌ ์“ฐ๊ธฐ๋กœ ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค์˜ DoubleWrite ๋ฒ„ํผ์— ๊ธฐ๋กํ•œ๋‹ค.
  2. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋”ํ‹ฐ ํŽ˜์ด์ง€๋ฅผ ํŒŒ์ผ์˜ ์ ๋‹นํ•œ ์œ„์น˜์— ํ•˜๋‚˜์”ฉ ๋žœ๋ค์œผ๋กœ ์“ฐ๊ธฐ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  3. ๋งŒ์•ฝ ๊ธฐ๋ก๋˜๋Š” ๋„์ค‘ ์šด์˜์ฒด์ œ๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ๋‹ค๋ฉด DoubleWrite ๋ฒ„ํผ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

 

๐Ÿ’  ํ”„๋ฆฌ ๋ฆฌ์ŠคํŠธ

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

 

 

โ˜‘๏ธ Undo ๋กœ๊ทธ

์–ธ๋‘ ์˜์—ญ์€ DML๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ณณ์ด๋‹ค.

๋‹จ์ˆœ UPDATE์™€ DELETE ์ฟผ๋ฆฌ๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์•„๋„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ(๋ฐ์ดํ„ฐ/์ธ๋ฑ์Šค ๋ฒ„ํผ) ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „์˜ ๊ฐ’์„ ๋ฐฑ์—…ํ•œ๋‹ค. ์ด ์ƒํƒœ์—์„œ ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ์ปค๋ฐ‹ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ณ ,

๋งŒ์•ฝ ๋กค๋ฐฑํ•œ๋‹ค๋ฉด ์–ธ๋‘ ์˜์—ญ์— ๋ฐฑ์—…๋˜์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ(๋ฐ์ดํ„ฐ/์ธ๋ฑ์Šค ๋ฒ„ํผ)๋กœ ๋ณต๊ตฌํ•œ๋‹ค.

Undo์˜ ๋ฐ์ดํ„ฐ๋Š” ํŠธ๋žœ์žญ์…˜์˜ ๋กค๋ฐฑ๊ณผ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋†’์€ ๋™์‹œ์„ฑ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

 

โ˜‘๏ธ ์ธ์„œํŠธ ๋ฒ„ํผ

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

 

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

๋ฐ˜์‘ํ˜•