μΈλ±μ€(Index)λ λ°μ΄ν°λ² μ΄μ€μμ κ²μ μλλ₯Ό ν₯μμν€κΈ° μν΄ μ¬μ©λλ λ°μ΄ν° ꡬ쑰λ‘, νΉμ μ΄(λλ μ¬λ¬ μ΄)μ λν μ λ ¬λ ν€μ ν΄λΉ ν€κ° κ°λ¦¬ν€λ μ€μ λ°μ΄ν° λ μ½λμ μμΉλ₯Ό 맀νν©λλ€. μΈλ±μ€λ λ°μ΄ν°λ² μ΄μ€μ κ²μ μ°μ° μλλ₯Ό ν₯μμν€κ³ 쿼리 μ±λ₯μ μ΅μ ννλ λ° λμμ΄ λ©λλ€.
μΈλ±μ€μ μ£Όμ νΉμ§κ³Ό μν
- κ²μ μλ ν₯μ: μΈλ±μ€λ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°λ² μ΄μ€ μμ§μ κ²μ 쑰건μ λ§λ λ μ½λλ₯Ό λΉ λ₯΄κ² μ°Ύμ μ μμ΅λλ€. νΉν λλμ λ°μ΄ν°κ° μλ ν μ΄λΈμμ νΉμ 쑰건μ λ°λ₯Έ κ²μμ μνν λ μ μ©ν©λλ€.
- μ λ ¬ λ° μ μΌμ± μ μ§: μΈλ±μ€λ νΉμ μ΄μ λν΄ μ λ ¬λ μμλ‘ λ°μ΄ν°λ₯Ό μ μ§νλ©°, νμμ λ°λΌ ν΄λΉ μ΄μ κ°μ΄ μ μΌνλλ‘ μ μ§ν μ μμ΅λλ€. μ΄λ μ£Όλ‘ κΈ°λ³Έ ν€λ κ³ μ μ μ½ μ‘°κ±΄μ μ¬μ©λ©λλ€.
- μ‘°μΈ μ±λ₯ ν₯μ: μΈλ±μ€λ μ‘°μΈ μ°μ°μ μ΅μ ννλ λ° λμμ΄ λ©λλ€. μ¬λ¬ ν μ΄λΈ κ°μ κ΄κ³μμ μ‘°μΈ μ°μ°μ μΈλ±μ€λ₯Ό νμ©νμ¬ λ ν¨μ¨μ μΌλ‘ μνλ μ μμ΅λλ€.
- WHERE 쑰건 μ΅μ ν: μΈλ±μ€λ WHERE 쑰건μμ μ¬μ©λλ μ΄μ λν κ²μμ μ΅μ ννλ λ° ν¨κ³Όμ μ λλ€. μ΄λ νΉν SELECT λ¬Έμμ WHERE μ μ΄ μμ£Ό μ¬μ©λλ κ²½μ° μ μ©ν©λλ€.
B-νΈλ¦¬(B-tree) ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ νλ μΈλ±μ€
λ§μ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν (DBMS)μμλ B-νΈλ¦¬(B-tree) ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ νλ μΈλ±μ€λ₯Ό μ¬μ©ν©λλ€. B-νΈλ¦¬λ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ λ ¬νκ³ νμνκΈ° μν νΈλ¦¬ ꡬ쑰μ λ°μ΄ν° ꡬ쑰λ‘, μμ£Ό μ¬μ©λλ λ°μ΄ν°λ² μ΄μ€ μΈλ±μ€μ κΈ°λ³Έ ꡬ쑰 μ€ νλμ λλ€.
λνμ μΌλ‘ MySQL, PostgreSQL, Oracle, SQL Server λ±μ λ°μ΄ν°λ² μ΄μ€ μμ€ν
μμλ B-νΈλ¦¬ κΈ°λ°μ μΈλ±μ€λ₯Ό κΈ°λ³ΈμΌλ‘ μ 곡νκ³ μμ΅λλ€. κ·Έλ¬λ λͺλͺ λ°μ΄ν°λ² μ΄μ€μμλ νΉμ μν©μ΄λ μꡬμ λ°λΌ λ€λ₯Έ μΈλ±μ€ ꡬ쑰λ₯Ό μ νν μ μμ΅λλ€.
무리νκ² λ§μ μΈλ±μ€ μμ±μ λ¨μ
κ·Έλ¬λ μΈλ±μ€λ₯Ό μ¬μ©ν λλ λͺ κ°μ§ κ³ λ € μ¬νμ΄ μμ΅λλ€. μΈλ±μ€λ λ°μ΄ν° μ½μ , μμ , μμ μμ μ μν₯μ λ―ΈμΉ μ μμΌλ©°, κ³Όλν μΈλ±μ€ μμ±μ λμ€ν¬ 곡κ°μ λλΉν μ μμ΅λλ€. μ μ ν μΈλ±μ€ μ λ΅μ μ ννκ³ μ μ§λ³΄μνλ κ²μ΄ μ€μν©λλ€.
- tableμ writeν λλ§λ€ indexλ λ³κ²½ λ°μ
- μΆκ°μ μΈ μ μ₯ κ³΅κ° μ°¨μ§
Covering Index (컀λ²λ§ μΈλ±μ€)
Covering Indexλ 쿼리μ μ€νμ μν΄ νμν λͺ¨λ λ°μ΄ν°λ₯Ό μΈλ±μ€ μ체μμ μ 곡νλ μΈλ±μ€μ ννλ₯Ό λνλ
λλ€. μ¦, 컀λ²λ§ μΈλ±μ€λ 쿼리μ κ²°κ³Όλ₯Ό κ°μ Έμ€κΈ° μν΄ λμ€ν¬μμ ν
μ΄λΈλ‘ μ΄λνμ§ μκ³ λ μΈλ±μ€λ§μΌλ‘ μνλ μ 보λ₯Ό μ 곡ν μ μμ΅λλ€.
μΌλ°μ μΌλ‘ μΈλ±μ€λ κ²μμ λΉ λ₯΄κ² νκΈ° μν λͺ©μ μΌλ‘ μ¬μ©λμ§λ§, λ§μ½ 쿼리μμ μ νλ μ΄κ³Ό νμν λ°μ΄ν°κ° λͺ¨λ μΈλ±μ€μ ν¬ν¨λμ΄ μλ€λ©΄, ν
μ΄λΈμ μ€μ λ‘ μ‘°ννμ§ μκ³ λ νμν κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€. μ΄λ° κ²½μ°λ₯Ό 컀λ²λ§ μΈλ±μ€λΌκ³ λΆλ¦
λλ€.
- κ²μ μ±λ₯ ν₯μ: ν μ΄λΈμ λν λμ€ν¬ I/Oλ₯Ό νΌνκ³ μΈλ±μ€λ§μΌλ‘ μνλ κ²°κ³Όλ₯Ό μ»μ μ μμΌλ―λ‘ κ²μ μ±λ₯μ΄ ν₯μλ©λλ€.
- λ°μ΄ν° μ μ‘ μ΅μν: νμν λ°μ΄ν°κ° μ΄λ―Έ μΈλ±μ€μ μ‘΄μ¬νκΈ° λλ¬Έμ λΆνμν λ°μ΄ν° μ μ‘μ΄ μ΅μνλμ΄ λ€νΈμν¬ λΉμ©κ³Ό λμνμ μ μ½ν μ μμ΅λλ€.
ν΄μ μΈλ±μ€(Hash Index)
ν΄μ μΈλ±μ€(Hash Index)λ ν΄μ ν¨μλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ²μνλ μΈλ±μ€ ꡬ쑰μ
λλ€. ν΄μ ν¨μλ κ³ μ ν μ
λ ₯μ λν΄ κ³ μ ν ν΄μ κ°μ μμ±νλ ν¨μλ‘, μ΄ ν΄μ κ°μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ²μν©λλ€. ν΄μ μΈλ±μ€λ νΉν λ± κ°μ΄ μΌμΉνλ κ²½μ°μ κ²μμ΄ λΉ λ₯΄κ² μ΄λ£¨μ΄μ§λ νΉμ±μ΄ μμ΅λλ€.
ν΄μ μΈλ±μ€μ νΉμ§κ³Ό λμ λ°©μ
- κ³ μ κ²μ
- λ± κ° μ²λ¦¬: ν΄μ μΈλ±μ€λ λ± κ°(λμΌν ν΄μ κ°)μ κ°μ§ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ μ μ©
- λ± κ° μΆ©λ: ν΄μ ν¨μκ° μλ‘ λ€λ₯Έ μ λ ₯μ λν΄ κ°μ ν΄μ κ°μ μμ±ν μ μλ μΆ©λμ΄ λ°μν μ μμ΅λλ€.
- λ²μ κ²μμ μ΄λ €μ: ν΄μ μΈλ±μ€λ νΉμ κ°μ λν κ²μμ ν¨κ³Όμ μ΄μ§λ§, λ²μ κ²μ(μ: "λ²μ λ΄μ κ° μ°ΎκΈ°")μλ μ ν©νμ§ μμ΅λλ€.
μ£Όμν μ μ ν΄μ μΈλ±μ€λ μ£Όλ‘ λ± κ° μ²λ¦¬κ° λ§μ κ²½μ°λ νΉμ κ²μ ν¨ν΄μ΄ μμΈ‘ κ°λ₯ν κ²½μ°μ μ μ©νλ©°, λ°μ΄ν°μ λΆν¬μ μΆ©λμ λν κ΄λ¦¬κ° νμν©λλ€. μΌλΆ λ°μ΄ν°λ² μ΄μ€μμλ InnoDBμ κ°μ μ€ν λ¦¬μ§ μμ§μμλ ν΄μ μΈλ±μ€λ₯Ό μ§μνμ§ μκ±°λ μ νμ μΌλ‘ μ§μν μ μμ΅λλ€.
An index is a data structure in a database that enhances the speed of data retrieval operations on a table by providing a quick and efficient way to locate and access specific rows based on the values in one or more columns.
'Computer Science > Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
25 NoSQL (0) | 2024.01.18 |
---|---|
20 Normalization (0) | 2024.01.16 |
12 Trigger (0) | 2024.01.13 |
9 ORDER BY, GROUP BY (feat. HAVING) (0) | 2024.01.12 |
8 JOIN (0) | 2024.01.12 |
λκΈ