π μ΄λν°λΈ ν΄μ μΈλ±μ€
μΌλ°μ μΌλ‘ μΈλ±μ€λ₯Ό μκ°νλ©΄ B-Tree μΈλ±μ€λ₯Ό μκ°ν κ²μ΄λ€. νμ§λ§ μ¬κΈ°μλ μ¬μ©μκ° μλμΌλ‘ μμ±νλ μΈλ±μ€κ° μλλΌ InnoDB μ€ν λ¦¬μ§ μμ§μμ μ¬μ©μκ° μμ£Ό μμ²νλ λ°μ΄ν°μ λν΄ μλμΌλ‘ μμ±νλ μΈλ±μ€μ΄λ€. μ¬μ©μλ innodb_adaptive_hash_index λ³μλ₯Ό μ΄μ©ν΄μ μ΄λν°λΈ ν΄μ μΈλ±μ€ κΈ°λ₯μ νμ±ννκ±°λ λΉνμ±νν μ μλ€.
βοΈ B-Treeμ νκ³
B-Treeλ μ€μ λ°μ΄ν°κ° 리ν λ Έλμ μ‘΄μ¬νκΈ° λλ¬Έμ νΉμ λ°μ΄ν°λ₯Ό μ°ΎκΈ° μν΄ λ£¨νΈ λ Έλ -> λΈλμΉ λ Έλ -> 리ν λ Έλμ κ²½λ‘λ₯Ό κ±°μΉλ€. λ§μ½ κ²μ μμ μ λͺμ² κ°μ μ€λ λλ‘ μ€ννλ©΄ CPU μ¬μ©λμ΄ λμ΄λκ³ μμ°ν 쿼리μ μ±λ₯μ λ¨μ΄μ§λ€.
βοΈ μ΄λν°λΈ ν΄μ μλ±μ€μ λ±μ₯
μ΄λν°λΈ ν΄μ μΈλ±μ€λ μ΄λ° B-Treeμ κ²μ μκ°μ μ€μ¬μ£ΌκΈ° μν΄ λμ λ κΈ°λ₯μ΄λ€. InnoDB μ€ν λ¦¬μ§ μμ§μ μμ£Ό μ½νλ λ°μ΄ν° νμ΄μ§μ ν€ κ°μ μ΄μ©ν΄ ν΄μ μΈλ±μ€λ₯Ό λ§λ€κ³ , νμν λλ§λ€ μ΄λν°λΈ ν΄μ μΈλ±μ€λ₯Ό κ²μν΄μ λ μ½λκ° μ μ₯λ λ°μ΄ν° νμ΄μ§λ₯Ό μ¦μ μ°Ύμκ° μ μλ€.
ν΄μ μΈλ±μ€λ 'μΈλ±μ€ ν€ κ°'κ³Ό 'λ°μ΄ν° νμ΄μ§ μ£Όμ'μ μμΌλ‘ κ΄λ¦¬λλ€. ν΄μ μΈλ±μ€λ νλλ§ μ‘΄μ¬νλ©°, λͺ¨λ B-Tree μΈλ±μ€μ λν μΈλ±μ€κ° μ μ₯λμ΄μΌ νκΈ° λλ¬Έμ νΉμ ν€ κ°μ΄ μ΄λ μΈλ±μ€μ μν κ²μΈμ§ ꡬλΆν΄μΌ νλ€. λ°λΌμ μΈλ±μ€ ν€ κ°μ B-Tree μΈλ±μ€μ κ³ μ λ²νΈμ B-Tree μΈλ±μ€μ μ€μ ν€ κ° μ‘°ν©μΌλ‘ μμ±λλ€.
βοΈ μ΄λν°λΈ ν΄μ μΈλ±μ€μ μ¬μ©
μ΄λν°λΈ ν΄μ μΈλ±μ€λ λ€μκ³Ό κ°μ κ²½μ°μ μ±λ₯ ν₯μμ λμμ΄ λλ€
- λμ€ν¬μ λ°μ΄ν°κ° InnoDB λ²νΌ ν ν¬κΈ°μ λΉμ·ν κ²½μ° (λμ€ν¬ μ½κΈ°κ° λ§μ§ μμ κ²½μ°)
- λλ± μ‘°κ±΄ κ²μ(λλ± λΉκ΅μ IN μ°μ°μ)μ΄ λ§μ κ²½μ°
- μΏΌλ¦¬κ° λ°μ΄ν° μ€μμ μΌλΆ λ°μ΄ν°μλ§ μ§μ€λλ κ²½μ°
μ΄λν°λΈ ν΄μ μΈλ±μ€λ λ°μ΄ν° νμ΄μ§λ₯Ό λ©λͺ¨λ¦¬λ΄μμ μ κ·Όνλ κ²μ λ λΉ λ₯΄κ² λ§λλ κΈ°λ₯μΌλ‘ λ°μ΄ν° νμ΄μ§λ₯Ό λμ€ν¬μμ μ½μ΄μ€λ κ²½μ°κ° λΉλ²ν λ°μ΄ν°λ² μ΄μ€ μλ²μμλ μλ¬΄λ° λμμ΄ λμ§ μλλ€.
- λμ€ν¬ μ½κΈ°κ° λ§μ κ²½μ°
- νΉμ ν¨ν΄μ μΏΌλ¦¬κ° λ§μ κ²½μ°(μ‘°μΈμ΄λ LIKE ν¨ν΄ κ²μ)
- λ§€μ° ν° λ°μ΄ν°λ₯Ό κ°μ§ ν μ΄λΈμ λ μ½λλ₯Ό νλκ² μ½λ κ²½μ°
λ§μ§λ§μΌλ‘ μ΄λν°λΈ ν΄μ μΈλ±μ€μ λμμ λ§μ΄ λ°μμλ‘ ν μ΄λΈ μμ λλ λ³κ²½ μμ μ λ μΉλͺ μ μΈ μμ μ΄ λλ€. λ§μ½ ν μ΄λΈμ λ³κ²½νλ€κ³ νλ©΄ InnoDB μ€ν λ¦¬μ§ μμ§μ μ΄ ν μ΄λΈμ΄ κ°μ§ λͺ¨λ λ°μ΄ν° νμ΄μ§μ λ΄μ©μ μ΄λν°λΈ ν΄μ μΈλ±μ€μμ μ κ±°ν΄μΌ νλ€.
βοΈ MySQL μλ² μν κ°
μ΄λν°λΈ ν΄μ μΈλ±μ€λ₯Ό λμ νλ κ²μ λν΄ κ³ λ―Όμ΄ λ λλ MySQL μλ²μ μν κ°λ€μ μ΄ν΄λ³΄λ κ²μ΄ μ’λ€.
mysql > SHOW ENGINE INNODB STATUS\G
μμ κ²°κ³Όλ μ΄λΉ 3.67(1.06 + 2.61)λ²μ κ²μμ΄ μ€νλμκ³ , κ·Έμ€ 2.61λ²μ μ΄λν°λΈ ν΄μ μΈλ±μ€λ₯Ό μ¬μ©νλ€λ κ²μ μλ―Ένλ€. μ¬κΈ°μ 'searches'λ μΏΌλ¦¬κ° μ²λ¦¬λκΈ° μν΄ λ΄λΆμ μΌλ‘ ν€ κ°μ κ²μμ΄ λͺ λ² μ€νλμλμ§ κ°λ¦¬ν¨λ€.
μ΄λν°λΈ ν΄μ μΈλ±μ€μ ν¨μ¨μ κ²μ νμκ° μλλΌ λ κ°μ λΉμ¨κ³Ό μ΄λν°λΈ ν΄μ μΈλ±μ€κ° μ¬μ© μ€μΈ λ©λͺ¨λ¦¬ 곡κ°, κ·Έλ¦¬κ³ μλ²μ CPU μ¬μ©λμ μ’ ν©ν΄μ νλ¨ν΄μΌ νλ€.