Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ์น ๋์ ๊ณผ์
- DDL DML DCL ์ฐจ์ด
- ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ํ์ด์ฌ ์๊ฐ์ด๊ณผ
- ์คํ๋ง ๋ถํธ์ AWS๋ก ํผ์ ๊ตฌํํ๋ ์น ์๋น์ค
- build.gradle ์ค์ ์ค๋ฅ
- OOP์ ํน์ง
- ์ ๊ทํ ์ฅ๋จ์
- ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ํ์ด์ฌ
- RDBMS์ NoSQL ์ฐจ์ด
- Spring Security 5
- ๋ชจ๋๋ก ์ฐ์ฐ
- ๋น๋๊ด๋ฆฌ๋๊ตฌ ์ฐจ์ด
- finalize ์๋ ํธ์ถ
- commit message convention
- ํ๋ก๊ทธ๋๋จธ์ค 142086
- Spring Security ๋ฒ์ ๋ฌธ์
- MySQL RIGHT()
- ์๊ณ ๋ฆฌ์ฆ 1000000007 ๋๋๊ธฐ
- Python 1000000007
- ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ ํ์ด์ฌ
- java ๋๊ธฐํ
- MySQL LEFT()
- ๋ฐฑํธ๋ํน
- ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ ์ ๊ณฑ๊ทผ
- www.google.com๏ปฟ ๊ฒ์ํ๋ฉด ์ผ์ด๋๋ ์ผ
- @RequestMapping๊ณผ @GetMapping
- PCB
- ํ๋ก์ธ์ค
- ๋น๋๊ด๋ฆฌ๋๊ตฌ
- ์ด์ฝํ 2021
Archives
- Today
- Total
BUILD_SSO
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ธ๋ฑ์ค Index ๋ณธ๋ฌธ
๐๐ป์ธ๋ฑ์ค Index์ ๋ํด ์ค๋ช ํ๊ณ , ์ฅ๋จ์ ์ ์ค๋ช ํด์ฃผ์ธ์
- ์ธ๋ฑ์ค๋ ํ
์ด๋ธ์ ์ฒ์๋ถํฐ ๋๊น์ง ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ธ FTS(Full Table Scan)๊ณผ๋ ๋ค๋ฅด๊ฒ ์ธ๋ฑ์ค๋ฅผ ๊ฒ์ํ์ฌ ํด๋น ์๋ฃ๋ฅผ ํ
์ด๋ธ์ ์ก์ธ์คํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
์๋ฅผ ๋ค์ด, DB๋ฅผ ์ฑ ์ผ๋ก ๋น์ ํ๋ค๋ฉด ๋ฐ์ดํฐ๋ ์ฑ ์ ๋ด์ฉ์ด ๋๊ณ , ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋ ์ฝ๋์ ์ฃผ์๋ ์ธ๋ฑ์ค ๋ชฉ๋ก์ ์๋ ํ์ด์ง ๋ฒํธ๊ฐ ๋ฉ๋๋ค.
์ฅ์
- ์ธ๋ฑ์ค๋ ํญ์ ์ ๋ ฌ๋ ์ํ๋ฅผ ์ ์งํ๊ธฐ ๋๋ฌธ์ (์ํ๋ ๊ฐ์) ๊ฒ์์ ๋น ๋ฅด๋ค.
- ๋๋ฌธ์, ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ORDER BY์ ์ํ ์ ๋ ฌ(Sort) ๊ณผ์ ์ ํผํ ์๊ฐ ์๊ณ , MIN, MAX๊ฐ์ ํจ์จ์ ์ธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
๋จ์
- ํ์ง๋ง ์๋ก์ด ๊ฐ์ ์ถ๊ฐ, ์์ ์ญ์ ํ๋ ๊ฒฝ์ฐ์๋ ์ฟผ๋ฆฌ๋ฌธ ์คํ ์๋๊ฐ ๋๋ ค์ง๋ค.
- ์ฆ, ์ธ๋ฑ์ค๋ DML์ ์ฝํ๋ค.
INSERT, UPDATE, DELETE๋ฅผ ํตํด ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ๊ฐ์ด ๋ฐ๋๋ค๋ฉด ์ธ๋ฑ์ค ํ ์ด๋ธ ๋ด์ ์๋ ๊ฐ๋ค์ ๋ค์ ์ ๋ ฌ์ ํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ฌ์ง์ฒ๋ผ ์ธ๋ฑ์ค ํ ์ด๋ธ, ์๋ณธ ํ ์ด๋ธ ์ด๋ ๊ฒ ๋ ๊ตฐ๋ฐ์ ๋ฐ์ดํฐ ์์ ์์ ์ ํด์ค์ผ ํ๋ค๋ ๋จ์ ๋ ๋ฐ์ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ DML์ด ๋น๋ฒํ ํ ์ด๋ธ๋ณด๋ค ๊ฒ์์ ์์ฃผ๋ก ํ๋ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข๋ค.
์ฆ, ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ์ ์ ์ฅ ์ฑ๋ฅ์ ํฌ์ํ๊ณ ๊ทธ๋์ ๋ฐ์ดํฐ์ ๊ฒ์ ์๋๋ฅผ ๋์ธ ๊ธฐ๋ฅ์ด๋ผ ํ ์ ์๋ค.
๐๐ปDBMS๋ Index๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๊ณ ์๋์?(Index ์๋ฃ๊ตฌ์กฐ)
B-Tree
- ์์ ๋ ธ๋๊ฐ 2๊ฐ ์ด์์ธ B-Tree๋ฅผ ๊ฐ์ ์ํจ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ,
- BTree ๋ฆฌํ๋ ธ๋๋ค์ LinkedList๋ก ์ฐ๊ฒฐํ์ฌ ์์ฐจ ๊ฒ์์ ์ฉ์ดํ๊ฒ ํ๋ค. ํด์ ํ ์ด๋ธ๋ณด๋ค ๋์ O(log2N)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
ํด์ํ ์ด๋ธ
- ์ปฌ๋ผ์ ๊ฐ์ผ๋ก ์์ฑ๋ ํด์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๊ตฌํํ๋ค.
- ์๊ฐ๋ณต์ก๋๊ฐ O(1)์ด๋ผ ๊ฒ์์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
๐๐ป์ index ๋ฅผ ์์ฑํ๋๋ฐ b-tree ๋ฅผ ์ฌ์ฉํ๋๊ฐ?
- ํด์ํ ์ด๋ธ์ ๊ฒฝ์ฐ ๋ถ๋ฑํธ(<,>)์ ๊ฐ์ ์ฐ์์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ํ ์์ฐจ ๊ฒ์์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ์ ํฉํ์ง ์์ B-Tree๋ฅผ ์ฌ์ฉํ๋ค.
๐๐ป๊ธฐ๋ณธ ์ธ๋ฑ์ค์ ๋ณด์กฐ ์ธ๋ฑ์ค(Primary Index vs Secondary Index)
๊ธฐ๋ณธ ์ธ๋ฑ์ค
- ์ธ๋ฑ์ค๊ฐ ๊ธฐ๋ณธ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๊ธฐ๋ณธ ์ธ๋ฑ์ค๋ผ๊ณ ํ๋ค.
- ์ด๋ฌํ ํค๋ ๊ฐ ๋ ์ฝ๋์ ๋ํด ๊ณ ์ ํ๋ค. ๋ํ ๋ ์ฝ๋ ๊ฐ์ 1:1 ๊ด๊ณ๋ฅผ ํฌํจํ๋ค.
- ๊ธฐ๋ณธ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๊ฒ์ ์ ๋ ฌ๋ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๋ค.
๋ณด์กฐ ์ธ๋ฑ์ค
- ๋ณด์กฐ ์ธ๋ฑ์ค๋ ๋ค๋ฅธ ์์ค์ ์ธ๋ฑ์ฑ์ ๋์ ํ์ฌ ๋งคํ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ ์ธ๋ฑ์ค์ด๋ค.
- ์ด๊ธฐ ๋จ๊ณ์์ ์ด์ ๋ฒ์๋ฅผ ์ ํํ๋ค. ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ์์ค์ ๋งคํ ํฌ๊ธฐ๊ฐ ์์์ง๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ์ธ๋ฑ์ค ๋ฐฉ๋ฒ์ ๊ฐ ๋ฒ์๋ฅผ ๋ ์์ ๋ฒ์๋ก ์ค์ธ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ณธ ๋ฉ๋ชจ๋ฆฌ๋ ์ฃผ์๋ฅผ ๋ ๋นจ๋ฆฌ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฒซ ๋ฒ์งธ ์์ค ๋งคํ์ ์ ์ฅํ๋ค. ๋ํ ๋ณด์กฐ๋ฉ๋ชจ๋ฆฌ๋ ๋ ๋ฒ์งธ ์์ค์ ๋งคํ๊ณผ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
์ฆ, ๊ธฐ๋ณธ ์ธ๋ฑ์ค๋ ํ๋์ ๊ธฐ๋ณธ ํค๋ฅผ ํฌํจํ๊ณ ์ค๋ณต ํญ๋ชฉ์ ํฌํจํ์ง ์๋ ํ๋ ์งํฉ์ ์ธ๋ฑ์ค์ธ ๋ฐ๋ฉด,
๋ณด์กฐ ์ธ๋ฑ์ค๋ ๊ธฐ๋ณธ ์ธ๋ฑ์ค๊ฐ ์๋ ์ธ๋ฑ์ค์ด๋ฉฐ ์ค๋ณต์ ํฌํจํ ์ ์๋ค.
๐๐ป๊ฒฐํฉ ์ธ๋ฑ์ค(Composite Index)
- ๊ฒฐํฉ ์ธ๋ฑ์ค๋ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ๋ ๋ ๊ฐ ์ด์์ ์ปฌ๋ผ์ ํฉ์ณ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋งํ๋ค.
๐๐ปIndex ์ ์ฑ๋ฅ๊ณผ ๊ณ ๋ คํด์ผํ ์ฌํญ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๊ฐ์ฅ ๋นจ๋ฆฌ ์๊ฐํ๋ ํด๊ฒฐ์ฑ
์ด ์ธ๋ฑ์ค ์ถ๊ฐ ์์ฑ์ด๋ค.
๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด์ ์ธ๋ฑ์ค๊ฐ ์์ฌ๊ฐ๋ ๊ฒ์ ํ๋์ ์ฟผ๋ฆฌ๋ฌธ์ ๋น ๋ฅด๊ฒ๋ ๋ง๋ค ์ ์์ง๋ง,
์ ์ฒด์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ ๋ถํ๋ฅผ ์ด๋ํ๋ค. - ์กฐํ ์ฑ๋ฅ์ ๊ทน๋ํํ๋ ค ๋ง๋ ๊ฐ์ฒด์ธ๋ฐ ๋ง์ ์ธ๋ฑ์ค๊ฐ ์์ฌ์ INSERT, UPDATE, DELETE ์์
๋ถํ๊ฐ ๋ฐ์ํด ์ ์ฒด์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ์ ํํ๋ค. - ๊ทธ๋ ๊ธฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๊ตฌ์ก์ด๋ก ์์ฑํ๋ ๊ฒ๋ณด๋ค๋ SQL๋ฌธ์ ์ข ๋ ํจ์จ์ ์ผ๋ก ์ง๋ ๋ฐฉํฅ์ผ๋ก ๋๊ฐ์ผ ํ๋ค.
'Tech Interview' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์๋ฐ ํ ํฌ ์ธํฐ๋ทฐ part2 (0) | 2023.05.22 |
---|---|
[Java] ์๋ฐ ํ ํฌ ์ธํฐ๋ทฐ part 1 (0) | 2023.05.17 |
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ ๊ทํ Normalization (0) | 2023.05.03 |
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] DB Query & JOIN (0) | 2023.05.03 |
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] ํค (0) | 2023.05.03 |
Comments