Home
>
DB
>
πΎ[Database] Clustered Indexλ 무μμΌκΉμ?
Database
Native SQL Query
MySQL
βπΎ[Database] Clustered Indexλ 무μμΌκΉμ?β
π Intro.
-
Clusterd Indexλ λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈμμ λ°μ΄ν°κ° 물리μ μΌλ‘ μ λ ¬λ λ°©μμΌλ‘ μ μ₯λλ μΈλ±μ€μ
λλ€.
- μ΄ μΈλ±μ€λ₯Ό μ¬μ©νλ©΄ μΈλ±μ€κ° κ³§ λ°μ΄ν°μ΄λ©°, μΈλ±μ€λ₯Ό μ‘°νν λ λ³λλ‘ λ°μ΄ν°λ₯Ό μ°Ύμκ°λ κ³Όμ μ΄ νμνμ§ μμ΅λλ€.
β
1οΈβ£ Clustered Indexμ νΉμ§.
-
1. μΈλ±μ€μ λ°μ΄ν°κ° λμΌ
- ν΄λ¬μ€ν°ν μΈλ±μ€λ ν
μ΄λΈμ ν(ROW) μ체λ₯Ό μ λ ¬λ μνλ‘ μ μ₯ν©λλ€.
- μ¦, μΈλ±μ€μ ν€ κ°μ΄ λ°μ΄ν°μ μ μ₯ μμλ₯Ό κ²°μ ν©λλ€.
- νλμ ν
μ΄λΈμλ νλμ ν΄λ¬μ€ν°ν μΈλ±μ€λ§ μ‘΄μ¬ν μ μμ΅λλ€.
-
2. λ°μ΄ν°κ° μ λ ¬λμ΄ μ μ₯
- λ°μ΄ν°λ ν΄λ¬μ€ν°ν μΈλ±μ€μ ν€ κ° μμλλ‘ λ¬Όλ¦¬μ μΌλ‘ μ λ ¬λ©λλ€.
- μ: PRIMARY KEYλ₯Ό κΈ°μ€μΌλ‘ μ λ ¬λ ν
μ΄λΈ.
-
3. λΉ λ₯Έ κ²μ
- ν΄λ¬μ€ν°ν μΈλ±μ€λ λ°μ΄ν°κ° μ΄λ―Έ μ λ ¬λμ΄ μμΌλ―λ‘ λ²μ κ²μμ΄λ μ λ ¬ 쿼리μμ μ±λ μ΄ λ§€μ° λ°μ΄λ©λλ€.
-
4. μ½μ
/μμ μ±λ₯ μ ν κ°λ₯μ±
- λ°μ΄ν°κ° μ λ ¬λ μνλ₯Ό μ μ§ν΄μΌ νλ―λ‘, μ½μ
/μμ μ μ±λ₯μ΄ λ¨μ΄μ§ μ μμ΅λλ€(νΉν μ€κ°μ μ½μ
ν κ²½μ°).
β
2οΈβ£ Clustered Indexμ μ€μ μμ
1οΈβ£ μμ : PRIMARY KEYλ‘ μμ±λ ν΄λ¬μ€ν°ν μΈλ±μ€.
- MySQLμμ κΈ°λ³Έμ μΌλ‘ κΈ°λ³Έ ν€(Primary Key)λ ν΄λ¬μ€ν°ν μΈλ±μ€λ‘ μμ±λ©λλ€.
CREATE TABLE article (
article_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
created_at DATETIME
);
-
κ²°κ³Ό :
- article_idλ₯Ό κΈ°μ€μΌλ‘ λ°μ΄ν°κ° μ λ ¬λ μνλ‘ μ μ₯λ©λλ€.
- PRIMARY KEYκ° ν΄λ¬μ€ν°ν μΈλ±μ€ μν μ ν©λλ€.
2οΈβ£ μμ : UNIQUEλ₯Ό κΈ°μ€μΌλ‘ ν΄λ¬μ€ν°ν μΈλ±μ€ μμ±.
- MySQLμμλ νΉμ μ΄μ κΈ°μ€μΌλ‘ ν΄λ¬μ€ν°ν μΈλ±μ€λ₯Ό μμ±ν μλ μμ΅λλ€.
CREATE TABLE user (
user_id INT AUTO_INCREMENT,
username VARCHAR(255) UNIQUE,
email VARCHAR(255),
PRAIMARY KEY (user_id),
UNIQUE KEY idx_username (username)
);
-
κ²°κ³Ό:
- PRIMARY KEY(user_id)κ° ν΄λ¬μ€ν°ν μΈλ±μ€λ‘ μ¬μ©λ©λλ€.
- usernameμ μ λ ¬λμ§ μκ³ , λ³λμ λΉν΄λ¬μ€ν°ν(Non-Clustered) μΈλ±μ€λ‘ μ μ₯λ©λλ€.
β
3οΈβ£ Clustered Indexμ μ₯μ .
-
1. λΉ λ₯Έ κ²μ:
- λ°μ΄ν°κ° μΈλ±μ€ ν€ κ°μΌλ‘ μ λ ¬λμ΄ μμΌλ―λ‘, λ²μ κ²μ(μ: BETWEEN, ORDER BY)μμ λΉ λ₯Έ μ±λ₯ μ 곡.
-
2. λ°μ΄ν° μ κ·Ό μ΅μν:
- μΈλ±μ€κ° κ³§ λ°μ΄ν°μ΄λ―λ‘, λ³λμ ν¬μΈν°λ₯Ό λ°λΌκ°μ§ μμλ λ¨.
-
3. ν¨μ¨μ μΈ μ μ₯ 곡κ°:
- λ°μ΄ν°μ μΈλ±μ€κ° κ²°ν©λμ΄ λ³λμ μΈλ±μ€ μ μ₯ 곡κ°μ΄ νμ μμ.
β
4οΈβ£ Clustered Indexμ λ¨μ .
-
1. μ½μ
/μμ μ±λ₯ μ ν:
- λ°μ΄ν°κ° νμ μ λ ¬λ μνλ₯Ό μ μ§ν΄μΌ νλ―λ‘, μ€κ°μ μ½μ
νκ±°λ μμ ν κ²½μ° μΆκ°μ μΈ λΉμ© λ°μ.
-
2. μ
λ°μ΄νΈ μ±λ₯ λ¬Έμ :
- ν΄λ¬μ€ν°ν μΈλ±μ€ ν€ κ°μ΄ λ³κ²½λλ©΄ λ°μ΄ν°μ 물리μ μ¬λ°°μ΄μ΄ νμν μ μμ.
-
3. νλλ§ μμ± κ°λ₯:
- ν ν
μ΄λΈμ νλμ ν΄λ¬μ€ν°ν μΈλ±μ€λ§ νμ©λλ―λ‘, μ¬λ¬ μ λ ¬ κΈ°μ€μ΄ νμνλ©΄ λΉν΄λ¬μ€ν°ν μΈλ±μ€λ₯Ό μ¬μ©ν΄μΌ ν¨.
β
5οΈβ£ Clustered Indexκ° μ ν©ν κ²½μ°.
-
1. λ²μ κ²μμ΄ λΉλ²ν κ²½μ°:
- μμ:
SELECT *
FROM orders
WHERE order_date
BETWEEN '2025-01-01' AND '2025-01-31';
-
2. μ λ ¬λ κ²°κ³Όκ° νμν κ²½μ°:
- μμ:
SELECT *
FROM article
ORDER BY created_at DESC;
-
3. λ°μ΄ν° μ½κΈ°κ° λ§μ κ²½μ°:
- λ°μ΄ν° μ½κΈ° μ±λ₯μ΄ μ€μν λ ν΄λ¬μ€ν°ν μΈλ±μ€λ₯Ό νμ©νλ©΄ ν¨μ¨μ .
π μ 리.
-
Clustered Indexλ λ°μ΄ν°κ° μΈλ±μ€ ν€ κ° μμλλ‘ μ λ ¬λ μνλ‘ μ μ₯λλ μΈλ±μ€μ
λλ€.
-
μ₯μ : λ²μ κ²μκ³Ό μ λ ¬ 쿼리μμ λ§€μ° ν¨μ¨μ .
-
λ¨μ : μ½μ
/μμ μ±λ₯ μ ν κ°λ₯, ν ν
μ΄λΈμμ νλλ§ μμ± κ°λ₯.
- MySQLμμλ PRIMARY KEYκ° κΈ°λ³Έμ μΌλ‘ ν΄λ¬μ€ν°ν μΈλ±μ€λ‘ μ¬μ©λ©λλ€.