DB
𫧠DB μΈλ±μ€λ? λ°μ΄ν°λ² μ΄μ€μ κ²μ μλλ₯Ό ν₯μμν€κΈ° μν μλ£κ΅¬μ‘°λ₯Ό λ§νλ€. → μ±
μμ λͺ©μ°¨λ₯Ό 보면 νμ΄μ§ λ²νΈλ§μΌλ‘ μνλ λ΄μ©μ λΆλΆμ ν λ²μ μ°Ύμ μ μλ κ²μ²λΌ κ²μμ λΉ λ₯΄κ³ μ½κ² λ§λ€μ΄μ£Όλ μλ―Έμ΄λ€ π Full Table Scan full table scanμ΄λ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ‘°νν λ whereλ¬Έμ μ΄μ©ν΄μ ν
μ΄λΈμ μ 체λ₯Ό 쑰건과 λΉκ΅ν΄μΌλλ μμ
μ΄λ€. κ·Έλμ κ΅μ₯ν λ²κ±°λ‘κ³ μκ°μ΄ μ€λκ±Έλ¦Ό! βοΈ B-Tree B-Treeλ Balanced Treeμ μ€μλ§μ΄λ€. MySQLμ DB μμ§μΈ InnoDBλ B+Treeλ‘ μ΄λ£¨μ΄μ ΈμμΌλ©° μ΄κ²μ B-Treeμ νμ₯λ κ°λ
μ΄λ€. B-Tree B-Treeλ λ°μ΄ν°κ° μ λ ¬λ μνλ‘ μ μ§λμ΄ μλ€λ κ²μ΄ ν΅μ¬μ΄λ€. μ°¨λ‘λλ‘ λ£¨νΈλ
Έλ, λΈλμΉ λ
Έλ, 리..
DB
DB κ΅μ°© μν(Dead Lock) λ°μ΄ν°λ² μ΄μ€μμ κ΅μ°© μνλ μ¬λ¬ κ°μ νΈλμμ
λ€μ΄ μ€ννμ§ λͺ»νκ³ μλ‘ λ¬΄νμ κΈ°λ€λ¦¬λ μνλ₯Ό λ§νλ€. μ¦, λ κ° μ΄μμ νΈλμμ
μ΄ νΉμ μμμ lockμ νλν μ± λ€λ₯Έ νΈλμμ
μ΄ μμ νκ³ μλ μ κΈμ μꡬνλ©΄ μ무리 κΈ°λ€λ €λ μν©μ΄ λ°λμ§ μμ μνμ΄λ€. β μ΄μ체μ μμμ κ΅μ°© μνλ κ°κ°μ νλ‘μΈμ€κ° μλ‘μ μμμ μ μ νκΈ° μν΄ λκΈ°νλ©΄μ μκΈ°λ λ¬Έμ λ₯Ό λ§νλ€. βͺοΈ κ΅μ°©μνκ° μΌμ΄λλ μν© νΈλμμ
1μ΄ ν
μ΄λΈ Bμ insertλ₯Ό νκ³ , νΈλμμ
2κ° ν
μ΄λΈ Aμ insertλ₯Ό νκ³ λμ μλ‘κ° lockμ κ±Έμλ νμ insert μμ
μ μλνλ€λ©΄ λ κ°μ νΈλμμ
λͺ¨λ waitingμ΄ λ°μνκ³ κ΅μ°©μν(Dead Lock)μ λΉ μ§κ² λλ€. κ΅μ°©μν ν΄κ²°λ°©λ² ..
DB
πΈμ κ·νλ? μ΄μνμμ΄ μλ 릴λ μ΄μ
μ λΆν΄ν΄νμ¬ μ΄μνμμ μμ λ κ³Όμ μ΄μνμμ΄ μ‘΄μ¬νλ 릴λ μ΄μ
μ λΆν΄νμ¬ μ¬λ¬ κ°μ 릴λ μ΄μ
μ μμ±νκ² λλ€. μ΄λ₯Ό λ¨κ³λ³λ‘ ꡬλΆνμ¬ μ κ·νμ΄ λμμ§ μλ‘ μ΄μνμμ΄ μ€μ΄λ€κ² λλ€. 𫧠μ 1 μ κ·ν (1NF) κ° μ»¬λΌμ΄ νλμ μμ±λ§ κ°μ ΈμΌ νλ€. νλμ 컬λΌμ κ°μ μ’
λ₯λ νμ
μ κ°μ κ°μ ΈμΌ νλ€. κ° μ»¬λΌμ΄ μ μΌν μ΄λ¦μ κ°μ ΈμΌνλ€. μΉΌλΌμ μμκ° μκ΄μμ΄μΌ νλ€. νμ λ²νΈ μ΄λ¦ κ³Όλͺ© 101 μμ΄μ μ΄μ체μ , DB 102 νν¨μ£Ό μλ° ν΄λΉ ν
μ΄λΈμ κ³Όλͺ©μμ νλλ§μ μμ±μ κ°μ§κ³ μμ§ μμ!! ν΄κ²° νμλ²νΈ μ΄λ¦ κ³Όλͺ© 101 μμ΄μ μ΄μ체μ 101 μμ΄μ DB 102 νν¨μ£Ό μλ° μΉ΅ μΉΌλΌμ΄ μμ κ°μ κ°λλ‘ νλ©΄ μ 1 μ κ·νμ λ§μ‘±ν μ μμ 𫧠μ 2 μ κ·ν ..
DB
π νΈλμμ
μ΄λ? νΈλμμ
μ ACID(μμμ±, μΌκ΄μ±, 격리 λ° μ§μμ±) μμ±μ΄ μλ μμ
κ·Έλ£Ήμ΄λ€. μ¦, ν΄λΉ μμ±μ κ°μ§λ©° λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€κΈ° μν΄μ μννλ μμ
μ λ¨μλ₯Ό λ§νλ€. λ³΄ν΅ μλμ μ§μμ΄λ₯Ό ν΅ν΄μ μμ
μ΄ μ΄λ£¨μ΄μ§λ©° ACID κ·μΉμ μ§ν€κ² λλ€. SELECT INSERT DELETE UPDATE π‘ νΈλμμ
νΉμ§ μμμ± (Atomicity) μμμ±μ νΈλμμ
μ΄ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ°μλλκ°, μλλ©΄ μ ν λ°μλμ§ μμμΌ νλ€λ κ²μ΄λ€. μν μ‘κΈμ μλ‘ λ€μ΄λ³΄μ. μν μ‘κΈμ ν κ³μ’μ λ€λ₯Έ κ³μ’μ λν νλμ΄ μμμ±μ μ§ν©μ΄λ€. Aκ³μ’μμ Bκ³μ’λ‘ λμ μ΄μ²΄νλλ° μ€κ°μ μ€λ₯κ° λμ Aκ³μ’μλ λμ΄ λΉ μ Έλκ°μ§λ§ Bκ³μ’μλ λμ΄ λ€μ΄μ€μ§ μμ μκ° μλ€. μ΄λ° λ¬Έμ λ₯Ό λ°©μ§νμ§..
DB
κ°μλ₯Ό λ£λ€κ° ν
μ΄λΈ μ΄λ¦μ μ νλκ±°μ μμ΄μ λ¨μνμ΄ μ’μμ§ λ³΅μνμ΄ μ’μμ§μ λν΄μ μ°Ύμ보μλ€. π§Ά λ¨μνμΌλ‘ μ§λ κ²½μ° μ½κ² 보μ΄κΈ° λλ¬Έμ μ¬λλ€μ΄ λ°λ₯΄κΈ°κ° λ§€μ° μ½λ€. λ§μ½ 볡μλ‘ μ§λ κ²½μ°μ child-children, octopus-octopiμ²λΌ 볡μνμ κΈ°μ΅νλ κ²μ΄ μ΄λ €μΈ μλ μλ€. κ·Έλμ λ¨μλ‘ μ¬μ©ν κ²½μ°μ μκ° μ μ½μ΄ λλ€ κ°λ°μκ° μ μ ν 볡μνμ λν΄μ κ³ λ―Όνμ§ μμλ λλ€. 볡μνμ μ°λ κ²λ³΄λ€ μ€νκ° μ€μ΄λ€μ΄μ μ 체μ μΈ μ€λ₯λ μ€μ΄λ€ μ μλ€. 𧡠볡μνμΌλ‘ μ§λ κ²½μ° λ³΅μν μ΄λ¦μ΄ μ½λ μ μ₯μ, λ°μ΄ν°λ² μ΄μ€ μν€ν
μ², μ ν리μΌμ΄μ
κ° μν€ν
μ² κ°μ ν΅μΌμ±μ μ 곡νλ€. λ§μ½μ userλΌλ ν
μ΄λΈμ΄ μμΌλ©΄ μ΄κ±΄ usersμ κ·Έλ£Ήμ΄ μλ userμ κ·Έλ£Ήμ΄λΌκ³ μ°©κ°ν μλ μκΈ° λ..