๐พ[Database] Clustered Index(ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค)๋ ๋ฌด์์ผ๊น์?
๐ Intro.
- โ๏ธ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ๋๋ ์ธ๋ฑ์ค์.
- โ๏ธ ์ฆ, ํ ์ด๋ธ์ ๋ฐ์ดํฐ ํ(Row)์ด ํน์ ๊ธฐ์ค(์ด, Column)์ ๋ฐ๋ผ ์ ๋ ฌ๋๋ฉฐ, ์ธ๋ฑ์ค๋ ๊ทธ ๊ธฐ์ค์ ๋ฐ๋ผ ํ ์ด๋ธ์ ๋ฌผ๋ฆฌ์ ์์๋ฅผ ์ ์งํจ.
โ 1๏ธโฃ Clustered Index์ ํต์ฌ ๊ฐ๋ .
1๏ธโฃ ๋ฌผ๋ฆฌ์ ์ ๋ ฌ(Physical Order).
- โ๏ธ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ํค ๊ฐ์ ๋ฐ๋ผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๋ ฌ๋จ.
- โ๏ธ ํ ํ
์ด๋ธ์ ๋จ ํ๋์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ง ์์ฑํ ์ ์์.
- โ๏ธ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์์๋ ํ๋์ ๊ธฐ์ค์ผ๋ก๋ง ์ ๋ ฌ ๊ฐ๋ฅ.
2๏ธโฃ ๊ธฐ๋ณธ ํค(Primary Key)์์ ๊ด๊ณ.
- โ๏ธ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์์ Primary Key(๊ธฐ๋ณธ ํค)๋ฅผ ์ค์ ํ๋ฉด ์๋์ผ๋ก ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๊ฐ ์์ฑ๋จ.
- โ๏ธ ์๋ฅผ ๋ค์ด, id๊ฐ Primary Key๋ก ์ค์ ๋ ๊ฒฝ์ฐ, ํ ์ด๋ธ์ id ์์๋๋ก ์ ๋ ฌ๋ฉ๋๋ค.
3๏ธโฃ ๋ฐ์ดํฐ ํ์ด์ง(Data Pages)
- โ๏ธ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ ๋ฐ์ดํฐ ํ์ด์ง ์์ฒด๊ฐ ์ธ๋ฑ์ค์ ์ผ๋ถ๊ฐ ๋จ.
- ๋ฐ๋ผ์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ์ง์ ์ ๊ทผํ ์ ์์ด ๊ฒ์ ์๋๊ฐ ๋น ๋ฆ.
4๏ธโฃ Non-Clustered Index (๋นํด๋ฌ์คํฐํ ์ธ๋ฑ์ค)์์ ์ฐจ์ด
- โ๏ธ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clusterd Index) : ์ค์ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค ํค ์์๋๋ก ์ ๋ ฌ๋์ด ์ ์ฅ๋ฉ๋๋ค.
- โ๏ธ ๋นํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Non-Clustered Index) : ๋ฐ์ดํฐ๋ ์ ๋ ฌ๋์ง ์์ผ๋ฉฐ, ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ํฌํจํฉ๋๋ค.
โ 2๏ธโฃ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค์ ์ฅ๋จ์ .
๐ ์ฅ์ .
1๏ธโฃ ๋น ๋ฅธ ๊ฒ์ ๊ธฐ๋ฅ.
- โ๏ธ ์ธ๋ฑ์ค ํค ๊ฐ์ผ๋ก ์ง์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์์.
2๏ธโฃ ๋ฒ์ ๊ฒ์ ์ต์ ํ.
- โ๏ธ BETWEEN, ORDER BY, GROUP BY ๊ฐ์ ๋ฒ์ ๊ธฐ๋ฐ ์ฟผ๋ฆฌ์ ์ ๋ฆฌํจ.
3๏ธโฃ ๋ฐ์ดํฐ ์ ๊ทผ ๋น์ฉ ์ ๊ฐ.
- โ๏ธ ๋ฐ์ดํฐ ํ์ด์ง ์์ฒด๊ฐ ์ธ๋ฑ์ค์ ์ผ๋ถ์ด๋ฏ๋ก ์ถ๊ฐ ํฌ์ธํฐ๊ฐ ํ์ ์์.
๐ ๋จ์ .
1๏ธโฃ ๋ฐ์ดํฐ ์ฝ์ /์ญ์ ์ฑ๋ฅ ์ ํ.
- โ๏ธ ์ธ๋ฑ์ค ์์์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋๋ฏ๋ก ์ฝ์ /์ญ์ ์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์์.
2๏ธโฃ ๋ฆฌ๋น๋ ๋น์ฉ.
- โ๏ธ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ๊ตฌ์ฑํด์ผ ํ ์๋ ์์.
3๏ธโฃ ํ ๊ฐ๋ง ์์ฑ ๊ฐ๋ฅ.
- โ๏ธ ํ ์ด๋ธ๋น ํ๋์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ง ์์ฑํ ์ ์์.
โ 3๏ธโฃ ์ธ์ ์ฌ์ฉํด์ผ ํ ๊น?
1๏ธโฃ ์์ฃผ ์กฐํ๋๋ ํ ์ด๋ธ.
- โ๏ธ ์กฐํ ์ฟผ๋ฆฌ๊ฐ ๋น๋ฒํ๊ฒ ์คํ๋ ๊ฒฝ์ฐ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉ.
2๏ธโฃ ๋ฒ์ ๊ฒ์์ด ๋ง์ ๊ฒฝ์ฐ.
- โ๏ธ BETWEEN, >, < ์ ๊ฐ์ ๋ฒ์ ๊ฒ์์ ์์ฃผ ์ฌ์ฉํ๋ค๋ฉด ์ ๋ฆฌํจ.
3๏ธโฃ ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๊ฐ ์์ฃผ ํ์ํ ๊ฒฝ์ฐ.
- โ๏ธ ORDER BY ์ ์ด ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ํจ๊ณผ์ ์.
โ 4๏ธโฃ ๋น๊ต: Clustered Index vs Non-Clustered Index
๊ตฌ๋ถ | Clustered Index | Non-Clustered Index |
---|---|---|
๋ฌผ๋ฆฌ์ ์ ์ฅ | ๋ฐ์ดํฐ ์์ฒด๊ฐ ์ ๋ ฌ๋จ | ๋ฐ์ดํฐ๋ ์ ๋ ฌ๋์ง ์์ |
์ธ๋ฑ์ค ๊ฐ์ | ํ๋๋ง ์์ฑ ๊ฐ๋ฅ | ์ฌ๋ฌ ๊ฐ ์์ฑ ๊ฐ๋ฅ |
์ฑ๋ฅ | ์กฐํ ์ฑ๋ฅ์ด ๋ ๋น ๋ฆ | ๋ฐ์ดํฐ ์ ๊ทผ์ ์ถ๊ฐ ๋จ๊ณ ํ์ |
์ฃผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ | Primary Key๋ก ์ฌ์ฉ๋จ | Secondary Key๋ก ์ฌ์ฉ๋จ |
๐ ์ ๋ฆฌ.
- โ๏ธ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(Clustered Index)๋ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ํน์ ํค ๊ธฐ์ค์ผ๋ก ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๋ ฌํ์ฌ ์ ์ฅํ๋ ์ธ๋ฑ์ค์
๋๋ค.
- โ๏ธ ์ฃผ๋ก Primary Key์ ์ํด ์์ฑ๋๋ฉฐ, ๋น ๋ฅธ ๊ฒ์ ๋ฐ ๋ฒ์ ์กฐํ์ ์ ๋ฆฌํฉ๋๋ค.
- โ๏ธ ํ์ง๋ง ์ฝ์ /์ญ์ ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์๊ณ , ํ๋์ ํ ์ด๋ธ์๋ ํ๋์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ง ์กด์ฌํ ์ ์์ต๋๋ค.
๐ฏ ํต์ฌ ํฌ์ธํธ:
- โ๏ธ ๋ฌผ๋ฆฌ์ ์ ๋ ฌ์ด ํต์ฌ
- โ๏ธ Primary Key๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก Clustered Index
- โ๏ธ ์กฐํ ์ต์ ํ์ ์ ๋ฆฌ, ์ฝ์ /์ญ์ ๋น์ฉ์ ์ฆ๊ฐ
๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ์ ํ ์ด๋ธ์ ํน์ฑ๊ณผ ์ฟผ๋ฆฌ ํจํด์ ๊ณ ๋ คํ์ฌ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ์ ์ ํ ํ์ฉํด์ผ ํจ.