νΈλμμ (Transaction)
2024. 1. 22. 23:32
DBMSμμ λ°μ΄ν°λ₯Ό λ€λ£¨λ λ Όλ¦¬μ μΈ μμ μ λ¨μ
- νΈλμμ
μ μ μνλ μ΄μ
- DBμμ λ°μ΄ν°λ₯Ό λ€λ£°λ μ₯μ κ° μΌμ΄λ λ λ°μ΄ν°λ₯Ό 볡ꡬνλ μμ μ λ¨μκ° λλ€.
- DBμμ μ¬λ¬ μμ μ΄ λμμ κ°μ λ°μ΄ν°λ₯Ό λ€λ£° λ μμ μ μλ‘ λΆλ¦¬νλ λ¨μκ° λλ€.
- νΈλμμ
μ μ μ²΄κ° μνλκ±°λ λλ μ ν μνλμ§ μμμΌ νλ€. (all or nothing)
ex) μν μ΄μ²΄ μ 무
BEGIN
1\. Aκ³μ’μμ 10,000μμ μΈμΆνλ UPDATEλ¬Έ
2\. Bκ³μ’μμ 10,000μμ μ
κΈνλ UPDATEλ¬Έ
END
- νΈλμμ μ μν κ³Όμ

- νΈλμμ 1μ μμ±νλ€
- νΈλμμ 2λ₯Ό μμ±νλ€
- T1μ κ°μ DBμμ μ£ΌκΈ°μ΅μ₯μΉ λ²νΌλ‘ μ½μ΄μ¨λ€
- T2μ κ°μ DBμμ μ£ΌκΈ°μ΅μ₯μΉ λ²νΌλ‘ μ½μ΄μ¨λ€
- T1μμ λμ κ°κ²½μ 7100μμΌλ‘ μ λ°μ΄νΈ νλ€
- T2μμ λμ κ°κ²© +100μ κ°μΌλ‘ μ λ°μ΄νΈ νλ€
- T1κ°μ μ£ΌκΈ°μ΅μ₯μΉ λ²νΌμμ DBμ κΈ°λ‘νλ€ (COMMIT)
- T2κ°μ μ£ΌκΈ°μ΅μ₯μΉ λ²νΌμμ DBμ κΈ°λ‘νλ€ (COMMIT)
- νΈλμμ
μ μ±μ§ (ACID)
- μμμ± (Atomicity) : νΈλμμ
μ ν¬ν¨λ μμ
μ μ λΆ μνλκ±°λ μ λΆ μνλμ§ μμμΌνλ€.
all or nothing
- μΌκ΄μ± (Consistency) : νΈλμμ μ μννκΈ° μ μ΄λ νλ λ°μ΄ν°λ² μ΄μ€λ νμ μΌκ΄λ μνλ₯Ό μ μ§ν΄μΌνλ€.
- κ³ λ¦½μ± (Isolation) : μν μ€μΈ νΈλμμ μ λ€λ₯Έ νΈλμμ μ΄ λΌμ΄λ€μ΄ λ³κ²½ μ€μΈ λ°μ΄ν°κ°μ νΌμνλ μΌμ΄ μμ΄μΌνλ€.
- μ§μμ± (Durability) : μνμ μ±κ³΅μ μΌλ‘ μλ£ν νΈλμμ μ λ³κ²½ν λ°μ΄ν°λ₯Ό μꡬν μ μ₯ν΄μΌνλ€.
- μμμ± (Atomicity) : νΈλμμ
μ ν¬ν¨λ μμ
μ μ λΆ μνλκ±°λ μ λΆ μνλμ§ μμμΌνλ€.
- λμμ± μ μ΄ (concurrency control)
- νΈλμμ μ΄ λμμ μνλ λ, μΌκ΄μ±μ ν΄μΉμ§ μλλ‘ νΈλμμ μ λ°μ΄ν° μ κ·Όμ μ μ΄νλ DBMSμ κΈ°λ₯
μν© | νΈλμμ 1 | νΈλμμ 2 | λ°μλ¬Έμ | λμ μ κ·Ό |
μν©1 | μ½κΈ° | μ½κΈ° | λ¬Έμ μμ | νμ© |
μν©2 | μ½κΈ° | μ°κΈ° | μ€μ μ½κΈ°, λ°λ³΅ λΆκ°λ₯ μ½κΈ°, μ λ Ήλ°μ΄ν° μ½κΈ° | νμ©/λΆκ° μ€ μ ν |
μν©3 | μ°κΈ° | μ°κΈ° | κ°±μ μμ€(μ λ νμ©νλ©΄ μ λ¨) | νμ©λΆκ° (Lockμ μ΄μ©) |
- κ°±μ μμ€ (lost update)
- λκ°μ νΈλμμ μ΄ ν κ°μ λ°μ΄ν°λ₯Ό λμμ κ°±μ (update)ν λ λ°μ
- λ°μ΄ν°λ² μ΄μ€μμ μ λ λ°μνλ©΄ μλλ νμ
- T2μμ μλͺ» λ κ²°κ³Όλ₯Ό λ§λ λ€μ T1μ κ°±μ μμ
μ 무ν¨ν νκ³ λ§μ°κΈ° μμ
μ μννκ² λ μ μλ€.
μ΄λ T1μμ κ°±μ μμ€ λ¬Έμ κ° λ°μνλ€.
- λ½(Lock)
- κ°±μ μμ€ λ¬Έμ λ₯Ό ν΄κ²°νλ €λ©΄ μλλ°© νΈλμμ μ΄ λ°μ΄ν°λ₯Ό μ¬μ©νλμ§ μ¬λΆλ₯Ό μ μ μλ κ·μΉμ΄ νμνλ€
- λ°μ΄ν°λ₯Ό μμ μ€μ΄λΌλ μ¬μ€μ μ리λ λ°©λ²μ μ κΈμ₯μΉμ΄λ€
- 곡μ λ½ (LS, shared lock) : μ½κΈ°
λ°°νλ½ (LX, exclusive lock) : μ½κ³ μ°κΈ°
μμ² / μν | LS μν | LX μν |
LS μμ² | νμ© | λκΈ° |
LX μμ² | λκΈ° | λκΈ° |
'π» IT > DB' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μΌνλ©΄μ λ°°μ΄ MYSQL ++κ³μ μΆκ° (0) | 2024.05.16 |
---|---|
mariadb sqlλ¬Έ (+μκ° λ λ λ§λ€ μΆκ° μμ ) (0) | 2024.02.29 |
λ°μ΄ν° λͺ¨λΈλ§ (0) | 2024.02.26 |