β’
컬λΌμ κ°κ³Ό λ μ½λκ° μ μ₯λ μ£Όμλ₯Ό μ΄μ©νμ¬ ν€μ λ°Έλ₯λ₯Ό λ§λ¦
β’
InnoDBλ B-Tree ꡬ쑰 μ΄μ©
β’
B-Tree κ·Έλλ‘ μ¬μ©νμ§λ μλλ€.
β’
νλμ λ
Έλμ μμ €?ν€κ° μ‘΄μ¬νκ³ νΈλ¦¬ ννλ₯Ό κ°μ§κ³ κ· νμ μ μ§νκ³ μμλ₯Ό 보μ₯νλ€.
β’
λμ€ν¬μμ μ½μ΄μ€λ©΄ λ리λκΉ μ±λ₯ μμ μ΄μ μ λ
Έλ¦¬κΈ° μν΄ μ¬μ© κ·Έ λ§μ μΈλ±μ€λ₯Ό μμ μ ν λμλ μ±λ₯μ μ¬λ €μΌ νλκΉ μΈλ±μ€μ λ³κ²½μ΄ λ°μν λλ§λ€ νμΌμ μ κ·Όνλ©΄ μ±λ₯ μ νκ° λλ€. μ΄λ₯Ό μν΄ μ±λ₯ κ°μ μ΄ λ ꡬ쑰λ₯Ό μ¬μ©
β’
balanced tree μ μΌμ’
β’
κ° λ
Έλλ μ΅λ Nκ°μ ν€λ₯Ό κ°μ§λ€.
β’
νμ΄μ§ κΈ°λ° μλ£ κ΅¬μ‘°
β¦
λμ€ν¬μμ μ½μ΄μ€λ λ¨μ, λΈλ‘ λ¨μ
β¦
λ
Έλλ νμ΄μ§λ₯Ό κ°μ μλ―Έλ‘ μ¬μ©
β’
TFGκ° ν°μ§λ©΄,,?
β¦
ν νμ΄μ§μ λ΄μ μ μλ κ°μκ° μ μ΄μ§κ±°κ³ μλ‘μ΄ λ
Έλλ λ§γ
μ΄ λ§λ€μ΄μΌ ν κ±°κ³ μΈλ±μ€ κ΄λ¦¬λ₯Ό μν λ©λͺ¨λ¦¬κ° λ§μμ§λ€.
β¦
ν€κ° λ무 ν° λ°μ΄ν°λ₯Ό μ¬μ©ν΄λ μΈλ±μ€μλ μ±λ₯ μμ μ νκ° λ°μν μ μλ€.
β’
μΈλ±μ€λ logN
β’
Inno DB μμλ ν΄λ¬μ€ν°λ μΈλ±μ€, PK λ₯Ό ν€κ°μΌλ‘ μ£Όλ‘ μ¬μ©
β¦
λ°μ΄ν° νμΌλ‘ λ°λ‘ μ κ·Όν μ μλ μ£Όμλ₯Ό κ°μ§κ³ μμ
β’
ν΄λ¬μ€ν°λ μΈλ±μ€κ° μλ ν€λ€μ PK λ₯Ό κ°μ§κ³ μμ κ·Έλμ μκ°μ΄ 2λ°°
β’
hash λ³΄λ€ b-tree λ₯Ό μ¬μ©νλ μ΄μ
β¦
ν΄μ μΆ©λ κ°λ₯μ±
β¦
μμλ₯Ό 보μ₯
β¦
λΈλ λ¨μλ‘ μ μ₯μ΄ κ°λ₯νλ€
β¦
λ²μ κ²μμ΄ κ°λ₯
β¦
LIKE κ²μμ΄ κ°λ₯
β¦
μ λ ¬ μ¬μ
primary vs secondary
β’
pk μ pk μΈμ λͺ¨λ ν€
β’
mysql μ λͺ¨λ ν€μ λν΄ index λ₯Ό λ§λ λ€.
β’
key λ λ‘μ°λ₯Ό μλ³νκΈ° μν κ°, index λ ν
μ΄λΈ μ κ·Ό μλλ₯Ό λμ΄κΈ° μν μλ£ κ΅¬μ‘°
unique vs non-unique
clustered index
β’
λ°μ΄ν°λ₯Ό μ μ₯ν λ μ΄λ€ μμλ‘ μ μ₯νλμ§
β’
Inno DB μ κ²½μ° 1. primary key, 2. unique & not null column, 3. λ΄λΆμ μΌλ‘ μμ±ν GEN_CLUST_INDEX(6byte)
β’
ν΄λ¬μ€ν°λ μΈλ±μ€κ° μ€μ λ μμλλ‘ μ μ₯μ΄ λλ€! PK κ° ν΄λ¬μ€ν°λ μΈλ±μ€μΌ μ, λμ€μ μ μ₯λμ΄λ pk κ°μ΄ λ¨Όμ λΌλ©΄ μμ μ μ₯λλ€.
composite index
μ¬λ¬ κ°λ₯Ό λ¬Άμ΄μ μΈλ±μ€λ‘ λ§λ¦
μΈλ±μ€ νλ² λ μκ°ν΄λ³΄κΈ°
β’
νΈλ μ΄λ μ€ν
β¦
λ°μ΄ν°μ μμ μ΄ λΉλ²νλ€λ©΄ μΈλ±μ€μ μμ λ λΉλ²ν΄μ§λ€(CUD).
μΈλ±μ€ μ€μ κΈ°μ€
β’
cardinality
β¦
κ°μ΄ μΌλ§λ λ€μνκ² μ μ₯λμ΄μλμ§(μΌλ§λ unique νμ§)
β’
μλΉμ€μμ μ¬μ©νλ 쿼리
β¦
μ¬λ§νλ©΄ μΈλ±μ€ νλΌ
β¦
λ°μ΄ν°κ° λ§μ ν
μ΄λΈμΌ λ!
μΈλ±μ€λ₯Ό μ¬μ©ν μ μμ λ
β’
<>, NOT IN, NOT BETWEEN, IS NOT NULL
β¦
μΈλ±μ€λ νΉμ λ°μ΄ν°μ μΌμΉνλ κ²μ μ°Ύμ λ λΉ λ₯Έλ° μΈλ±μ€λ λμ€ν¬ λλ€ IO κ° λ°μ
β¦
ν΄λ¬μ€ν°λ μΈλ±μ€λ₯Ό λ°λΌ μμ°¨μ μΌλ‘ λμ€ν¬μ μ κ·Ό
β¦
DB κ° κ·Έλ₯ μμλλ‘ μ κ·Όνλκ² λΉ λ₯΄κ² λ€ μΆμ΄μ μμλλ‘ μ κ·Όν¨ μΈλ±μ€ λμ
β¦
μ’μ μμ
1 | banana |
2 | apple |
3 | grapefruit |
4 | watermelon |
5 | melon |
β¦
μμ κ²½μ° name μ ν΄λ¬μ€ν°λ μΈλ±μ€κ° κ±Έλ € μμ λ μΈλ±μ€λ₯Ό νλ©΄ 2, 1, 3, 5, 4 μ μμλ‘ λμ€ν¬μ μ κ·Όνλ€!
β’
LIKE β%??β
β¦
b-tree λΌμ μΈλ±μ€λ₯Ό νμ§ μλλ€.
β’
where char_index = 10;
β¦
νμ
κ°κ³΅ν λ 10μ΄ λ μ μλκ² λ무 λ§λ€. β10β, β 10β, β0010β λ±λ±
explain
β’
key 컬λΌ
β¦
μ€μ λ‘ μΏΌλ¦¬κ° μ€νλ λ μ¬μ©ν key
β’
type 컬λΌ
β¦
index λ₯Ό νλμ§, ν ν
μ΄λΈ μ€μΊμΈμ§
β¦
to_date > ββ κ° all νλ μ΄μ β index λ‘ μ½μ λ°μ΄ν°κ° λ λ§μμ κ± ν
μ΄λΈμ μ½μ
β¦
PK λ‘ range μ½μ λμλ λ°μ΄ν°κ° λ§μλ κ·Έλλ‘ range λ‘ μ½μ.
β¦
PK λ κ·Έλ₯ disk μ μμλλ‘ μ μ₯μ΄ λκΈ°λλ¬Έμ!