μΊμ(Cache) κ°λ μ½κ² μ 리νκΈ°
π μΊμ(Cache)λ?
μ§κΈκΉμ§ λ°μ΄ν°κ° νμν λ λ°μ΄ν°λ² μ΄μ€μμ μ§μ μ‘°νν΄μμ΅λλ€.
κ°λ°μ 곡λΆν΄λ΄€λ€λ©΄ μ ν리μΌμ΄μ μ±λ₯μ I/O μμ μ μν₯μ΄ ν¬λ€λ λ§μ λ€μ΄λ΄€μ κ²λλ€.
κ·Έλ§νΌ μ¦μ DB μ κ·Όμ λΆλ΄μ΄ λλ©° μλλ λ립λλ€.
κ·Έλ λ€λ©΄, μμ£Ό μ‘°ννλ λ°μ΄ν°λ₯Ό λ 빨리 μ‘°νν μ μλ λ°©λ²μ΄ μμκΉμ?

λ°λ‘ μΊμκ° κ·Έ λ°©λ²μ
λλ€.
μΊμ(Cache)λ, μμ£Ό μ‘°ννλ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² μ κ·Όν μ μλλ‘ μμ μ μ₯νλ 곡κ°μ λ§ν©λλ€.
μΊμλ₯Ό μ΄μ©ν΄ λ°μ΄ν° μ κ·Ό μκ°μ μ€μ΄κ³ , μλ²μ λ°μ΄ν°λ² μ΄μ€μ λΆνλ₯Ό μ€μ¬ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
μ¦, μΊμμ λͺ©μ μ λΉ λ₯Έ λ°μ΄ν° μ‘°νλ₯Ό ν΅ν΄ μλ΅ μκ°μ λ¨μΆνκ³ , μμ€ν λΆνμ λΉμ©μ μ€μ΄λ κ²μ λλ€.

μ»΄ν¨ν° μμ€ν μμ λ°μ΄ν°μ μ κ·Όνλ μλλ λ°μ΄ν°κ° μ μ₯λ μμΉμ λ°λΌ λ€λ¦ λλ€.
λ©λͺ¨λ¦¬ κ³μΈ΅ ꡬ쑰λ μ κ·Έλ¦Όκ³Ό κ°μ΄ ννν μ μκ³ ,
λ°μ΄ν° μ‘°ν μμ² μ μλ μμλ‘ μ‘°νν©λλ€.
CPU Register -> L1 Cache -> L2 Cache -> L3 Cache -> λ©μΈ λ©λͺ¨λ¦¬(RAM) -> λμ€ν¬
μΌμͺ½μΌλ‘ κ°μλ‘ μλκ° λΉ λ₯΄μ§λ§ μ©λμ΄ μκ³
μ€λ₯Έμͺ½μΌλ‘ κ°μλ‘ μλλ λ리μ§λ§ μ©λμ΄ ν½λλ€.
μ°λ¦¬κ° μ¬μ©νλ μ ν리μΌμ΄μ
μΊμλ λλΆλΆ λ©μΈ λ©λͺ¨λ¦¬μ μ‘΄μ¬ν©λλ€.
λ°μ΄ν°λ² μ΄μ€μ²λΌ λμ€ν¬λ₯Ό κ±°μΉμ§ μκ³ , ν¨μ¬ λΉ λ₯Έ μλλ‘ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ μ μμ΄ μ±λ₯ κ°μ μ ν° λμμ΄ λ©λλ€.
π νΉμ§
β μκ°μ μ§μμ±(Temporal Locality)
ν λ² μ°Έμ‘°λ λ°μ΄ν°λ κ°κΉμ΄ λ―Έλμ λ€μ μ°Έμ‘°λ κ°λ₯μ±μ΄ λλ€.
νΉμ λ°μ΄ν°κ° ν λ² μ κ·Όλμμ κ²½μ° κ°κΉμ΄ λ―Έλμ λ ν λ² λ°μ΄ν°μ μ κ·Όν κ°λ₯μ±μ΄ λλ€λ λ»μΌλ‘,
ν λ² κ°μ Έμλ λ°μ΄ν°λ λ μΈ μΌμ΄ μμ κ±°λΌκ³ 보λ κ²λλ€.
μλ₯Ό λ€μ΄, μΌνλͺ°μμ 'μΈκΈ° μν λͺ©λ‘'μ ν λ² μ‘°νλ ν μμ£Ό λ€μ μ‘°νλλ λ°μ΄ν°μ λλ€.
λͺ©λ‘μ λ§€λ² λ°μ΄ν°λ² μ΄μ€μμ 쿼리λ₯Ό μ€νν΄ κ°μ Έμ¬ νμ μμ΄ μΊμμ μ μ₯ν μ μκ² μ£ .
μ΄λ° κ²½μ° λ°μ΄ν°λ₯Ό μ²μ λ°μ΄ν°λ² μ΄μ€μμ μ‘°νν λ μΊμμ μ μ₯νκ³ ,
μ΄νμλ μΊμμμλ§ λ°μ΄ν°λ₯Ό μ½μΌλ©΄ λ§€λ² λ°μ΄ν°λ² μ΄μ€μ μ κ·Όνμ§ μκ³ λΉ λ₯΄κ² μ½μ μ μμ΅λλ€.
λ°λΌμ μΊμλ λ°λ³΅μ μΌλ‘ μ¬μ©λλ λ°μ΄ν°κ° λ§μ λ ν¨μ¨μ μ λλ€.
β 곡κ°μ μ§μμ±(Spatial Locality)
μ°Έμ‘°λ λ°μ΄ν°μ μΈμ ν λ©λͺ¨λ¦¬ μ£Όμμ λ°μ΄ν°λ ν¨κ» μ°Έμ‘°λ νλ₯ μ΄ λλ€.
곡κ°μ μ§μμ±μ,
μλ‘ μΈμ νμ¬ μ μ₯λμ΄ μλ λ°μ΄ν°λ€μ μ°μμ μΌλ‘ μ κ·Όλ κ°λ₯μ±μ΄ λλ€λ νΉμ±μ λλ€.
CPU μΊμλ λμ€ν¬ μΊμμ κ²½μ° μ΄λ€ λ©λͺ¨λ¦¬ μ£Όμμ μ κ·Όν λ
κ·Έ μ£Όμ λΏ μλλΌ ν΄λΉ λΈλ‘μ ν΅μ§Έλ‘ μΊμμ κ°μ Έμ΅λλ€.
π μ£Όμ μ©μ΄
β μΊμ ννΈ(Cache Hit)
μμ²λ λ°μ΄ν°κ° μΊμμ μ‘΄μ¬νμ¬ μ¦μ μ°ΎμλΈ κ²½μ°λ₯Ό λ§ν©λλ€.
β μΊμ λ―Έμ€(Cache Miss)
μμ²λ λ°μ΄ν°κ° μΊμμ μλ κ²½μ°μ λλ€.
μΊμ λμ μλ³Έ μ μ₯μμμ λ°μ΄ν°λ₯Ό μ‘°νν ν μΊμμ μ μ₯νμ¬ κ°μ λ°νν©λλ€.
β μΊμ μ μ€λ₯ (Cache Hit Rate)
"μΊμ μ μ€λ₯ = μΊμ ννΈ / μ΄ μμ² μ"
μ΄ μμ² λλΉ μΊμκ° ννΈλ νμλ₯Ό λΉμ¨λ‘ λνλΈ κ°μ λλ€.
μΊμ μ μ€λ₯ μ΄ λμμλ‘ ννΈ λΉμ¨μ΄ λ§κ³ , μΊμλ₯Ό ν¨μ¨μ μΌλ‘ μ°κ³ μλ€κ³ ν΄μν μ μμ΅λλ€.
μμ€ν μ±λ₯κ³Ό λΉμ© μ κ° ν¨κ³Όλ₯Ό μ λμ μΌλ‘ νκ°ν μ μλ ν΅μ¬ μ§νλ‘ μ€μν μ©μ΄μ λλ€.
μ°Έκ³ μλ£