๋ฐ์ผ๋ฆฌ ๊ณผ์
1. DI์ ๋ํ ์ค๋ช ๊ณผ ํด๋น ๊ธฐ์ ์ ์ฅ์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
-> DI๋ ํด๋์ค ๊ฐ ์์กด์ฑ์ ๋ถ์ฌํด ์ฝํ ๊ฒฐํฉ์ ์คํ์์ผ ์ฝ๋ ์ ์ง๋ณด์๋ฅผ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ํ ์ ์๊ณ ๋์๊ฐ ํ์ฅํ ๋์๋ ํจ์จ์ ์ผ๋ก ์งํํ ์ ์์ต๋๋ค. ๋ํ ํ ์คํธ๋ฅผ ์งํํ ๋์๋ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถฐ ๋ฌธ์ ๋ฐ์ ์ง์ ์ ๋์ฑ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋์ค์์ ์์ฑํ ๊ฐ์ฒด๋ฅผ ํธ์ถํด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํด๋์ค์์ ํด๋น ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
2. DB์์ ์ธ๋ฑ์ค๋ฅผ ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ฅ์ ์ด ์์๊น์?
-> ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํ๋ ์ด์์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด ๊ฒ์ํ ๋ ์ ์ฒด ํ ์ด๋ธ์ ๊ฒ์ํ์ง ์๊ณ ๋ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ๊ฐ ์คํ๋ ๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ํด๋นํ๋ ์ธ๋ฑ์ค๋ก๋ง ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๊ฒ์ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ํ ์ด๋ธ์ ์ฌ๋ฌ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์๋ ๋ค์์ ์ฌ์ฉ์๊ฐ ๋์์ ๋์ผํ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ด ์ ๊ทผ์ฑ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ ํค ๋ฐ ๊ณ ์ ์ ์ฝ์กฐ๊ฑด ๋ฑ์ ํตํด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
๊ณต๋ถํ ๊ฐ์
https://www.youtube.com/watch?v=edpYzFgHbqs
1. ์ธ๋ฑ์ค๋?
-> ์ํ๋ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ ์์ธ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ค. ๋ฐ์ดํฐ๋ฅผ ํน์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ฉด ๊ฒ์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๊ณ where ์ ๋ฑ์ ํตํด ํ์ฉ๋๋ค.
1) ์ธ๋ฑ์ค๋ ํญ์ ์ต์ ์ ์ ๋ ฌ์ํ๋ฅผ ์ ์งํ๋ค
2) ์ธ๋ฑ์ค๋ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ด๋ค.
3) ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ์ ์ฝ 10% ์ ๋์ ์ ์ฅ๊ณต๊ฐ์ ํ์๋ก ํ๋ค.
2. ์ธ๋ฑ์ค ์๊ณ ๋ฆฌ์ฆ
ํ์ด์ง : ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋จ์
full table scan :
์์ฐจ์ ์ผ๋ก ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค.
์ ์ฉ ๊ฐ๋ฅํ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ, ์ธ๋ฑ์ค ์ฒ๋ฆฌ ๋ฒ์๊ฐ ๋์ ๊ฒฝ์ฐ
ํฌ๊ธฐ๊ฐ ์์ ํ ์ด๋ธ์ ์์ธ์คํ๋ ๊ฒฝ์ฐ
B-tree(์ด์งํ์ํธ๋ฆฌ)
์ด์ง ํ์๊ณผ ๋งํฌ๋๋ฆฌ์คํธ์ ์ฅ์ ์ ํฉ์ณ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ
๊ท ํ์๋ ์ด์งํ์ํธ๋ฆฌ์ ์๊ฐ๋ณต์ก๋๋ O(log n)์ด์ง๋ง, ๊ท ํ์ด ์๋ ๊ฒฝ์ฐ O(n)์ด๋ค. -> ๊ท ํ B-tree๋ฅผ ์ฌ์ฉํ๋ค.
๋ฃจํธ ํ์ด์ง, ๋ธ๋์น ํ์ด์ง : ์์ ํ์ด์ง์ ์ ๋ณด
๋ฆฌํ ํ์ด์ง : ์ค์ ๋ฐ์ดํฐ ํ์ด์ง(ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค), ์ค์ ๋ฐ์ดํฐ์ ์ฃผ์ ํ์ด์ง(๋ ผ-ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค)
Insert๋ฌธ์ ๊ฒฝ์ฐ
ํ์ด์ง์ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ ์ฝ์ ์ ๊ฒฝ์ฐ ํ์ด์ง๋ฅผ ์๋ก ์์ฑํด ๋ถํ ํ๋ค.
- DB๊ฐ ๋๋ ค์ง๊ณ ์ฑ๋ฅ์ ์ํฅ์ ์ค๋ค.
delete๋ฌธ : ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ก ์ง์ฐ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉ์ํจ ํ์ํ๋ ๊ฒ
update๋ฌธ : ๊ธฐ์กด ์ธ๋ฑ์ค๋ฅผ delete ์ฒ๋ฆฌ ํ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ insert
์ฌ์ฉํ์ง ์๋ ์ธ๋ฑ์ค์ where์ ์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋์ด ๋ถํ์ํ๊ฒ ์ฆ๊ฐํ๋ค
-> insert, update, delete๋ฌธ์ ์ธ๋ฑ์ค์ ์กฐ๊ฐํ๊ฐ ์ฌํด์ ธ ์ฑ๋ฅ์ด ์ ํ๋๋ค.
3. ์ธ๋ฑ์ค ์ข ๋ฅ
1) ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค
ํด๋ฌ์คํฐ : ๋ฌด๋ฆฌ, ๊ตฐ์ง
ํด๋ฌ์คํฐ๋ง : ์ค์ ๋ฐ์ดํฐ์ ๋ฌด๋ฆฌ๋ฅผ ์ด๋ฃธ ~ ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค๋ ์ค์ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฌด๋ฆฌ์ ์ธ๋ฑ์ค
์ธ๋ฑ์ค ~ Primary key, unique๋ ์ธ๋ฑ์ค -> primary key๋ ํด๋ฌ์คํฐ๋ง, unique๋ ๋ ผํด๋ฌ์คํฐ๋ง
๊ฐ ํ ์ด๋ธ์ PK๋ฅผ ์์๋ก ํ๋ ํ ์ด๋ธ : ๋ฃจํธ ํ์ด์ง, ๋ฆฌํ ์ฒด์ด์ง๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์๋ค.
ex) ์ฌ์
ํน์ง
- ์ค์ ๋ฐ์ดํฐ ์์ฒด๊ฐ ์ ๋ ฌ๋์ด ์๋ค
- ์ธ๋ฑ์ค๊ฐ ํ ์ด๋ธ ๋น ํ ๊ฐ๋ง ์กด์ฌํ ์ ์๋ค
- ๋ฆฌํ ํ์ด์ง๊ฐ ๋ฐ์ดํฐ ํ์ด์ง
- Primary key (์ฐ์ ์์) ๋๋ Unique + not null ์ ์ฝ์กฐ๊ฑด ์ ์๋ ์์ฑ๋๋ค
2) ๋ ผ ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค(๋ณด์กฐ ์ธ๋ฑ์ค, ์ธ์ปจ๋๋ฆฌ ์ธ๋ฑ์ค)
ex)๋ณ๋์ ์ฐพ์๋ณด๊ธฐ ํ์ด์ง
์์ฑ๋ฐฉ๋ฒ
- Unique ์ ์ฝ์กฐ๊ฑด
- Unique Index ์์ฑ, ์ค๋ณต ๋ถ๊ฐ
- INDEX ์์ฑ ~ CREATE INDEX idx_name ON member (name); ์ค๋ณต ํ์ฉ
ํน์ง
- ์ค์ ๋ฐ์ดํฐ ํ์ด์ง๋ ๊ทธ๋๋ก
- ๋ณ๋์ ์ธ๋ฑ์ค ํ์ด์ง๊ฐ ์กด์ฌํ๋ฏ๋ก ์ถ๊ฐ ๊ณต๊ฐ์ด ํ์ํ๋ค
- ํ ์ด๋ธ ๋น ์ฌ๋ฌ ๊ฐ๊ฐ ์์ ์ ์๋ค
- ๋ฆฌํ ํ์ด์ง์ ์ค์ ๋ฐ์ดํฐ ํ์ด์ง์ ์ฃผ์๊ฐ ์๋ค -> ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค๊ฐ ์ ์ฉ๋ ์ปฌ๋ผ์ ์ค์ ๊ฐ
- Unique ์ ์ฝ์กฐ๊ฑด ์ ์ฉ ์ ์๋ ์์ฑ๋๋ค
- ์ง์ index ์์ฑ ์ ๋ ผ ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค ์์ฑ
4. ์ธ๋ฑ์ค ์ ์ฉ๊ธฐ์ค
1) ์นด๋๋๋ฆฌํฐ : ๊ทธ๋ฃน ๋ด ์์์ ๊ฐ์
~ ์นด๋๋๋ฆฌํฐ๊ฐ ๋์ ๊ฒ์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํด์ผ ํ๋ค ~ ์์๊ฐ ๊ฐ์ฅ ๋ค์ํ ์ปฌ๋ผ์ด ๊ธฐ์ค์ด๋ค, ์ค๋ณต๋๊ฐ ๋ฎ์ ์ปฌ
2) Where, Join, Order By ์ ์ ์์ฃผ ์ฌ์ฉ๋๋ ์ปฌ๋ผ
- ์ธ๋ฑ์ค๋ ์ถ๊ฐ ๊ณต๊ฐ์ ํ์๋ก ํ๋ค
- ์กฐ๊ฑด ์ ์ด ์๋ค๋ฉด ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋์ง ์๋๋ค
3) INSERT/ UPDATE/ DELETE๊ฐ ์์ฃผ ๋ฐ์ํ์ง ์๋ ์ปฌ๋ผ
4) ๊ท๋ชจ๊ฐ ํฐ ํ ์ด๋ธ ~ ์ผ์ ๊ท๋ชจ ์ด์์ด ๋์ด์ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋ ๋ ํจ์จ์ ์ด๋ค
5. ์ธ๋ฑ์ค ์ฌ์ฉ์ ์ฃผ์์ฌํญ
1) ์ ํ์ฉ๋์ง ์๋ ์ธ๋ฑ์ค๋ ์ญ์
2) ์นด๋๋๋ฆฌํฐ๊ฐ ๋ฎ์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค ํจ๊ณผ๊ฐ ์ ๋ค
3) ์์ฃผ ์ฌ์ฉ๋๋๋ผ๋ ๋ฐ์ดํฐ ์์ ์ฟผ๋ฆฌ๊ฐ ์์ฃผ ์ผ์ด๋๋ค๋ฉด ์ธ๋ฑ์ค ์ฌ์ฉ์ ๊ณ ๋ คํด์ผ ํ๋ค
-> ์ผ๋ฐ์ ์ธ ์น ์๋น์ค์ ๊ฐ์ ์จ๋ผ์ธ ํธ๋์ญ์ ํ๊ฒฝ์์ ์ฐ๊ธฐ์ ์ฝ๊ธฐ ๋น์จ์ 2:8 ๋๋ 1:9์ด๋ค
-> ์กฐ๊ธ ๋๋ฆฐ ์ฐ๊ธฐ๋ฅผ ๊ฐ์ํ๊ณ ๋น ๋ฅธ ์ฝ๊ธฐ๋ฅผ ์ ํํ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ด๋ค
+ ์ถ๊ฐ๋ก ๊ณต๋ถํ๋ฉด ์ข์ ์ฐ๊ด์ง์
-> B+Tree, ์คํ๊ณํ, ๋ค์ค์ปฌ๋ผ ์ธ๋ฑ์ค, SQL ์ต์ ํ, ANALYZE TABLE, ์ตํฐ๋ง์ด์
๋ฉํ ๋ ๊ฐ์
- ๋ชฉํ ์ธ์ฐ๊ธฐ : ์ทจ์ค ๋ง์ง๋ ธ์ ๊ณผ ์ํ๋ ํ์ฌ์ ๋ฒ์๋ฅผ ์ก์
- ์ง์์ ๊ธฐ๋ณธ์ ๊ฐ์ถ์
: ์๊ธฐ์๊ฐ, ๊ฐ๋ฐ์ง๊ตฐ์ผ๋ก์์ ์ง์๋๊ธฐ๊ฐ ์ค๋น๋์ด ์๋๊ฐ?
~ ๊ธฐ์ ํํ์ ๋ํด ๋ถํ์ํ ๋ด์ฉ์ ๋ฐฐ์ ํ๊ณ ๊ธฐ๊ฐ ๋ด ์ฌ์ฉํ ๊ธฐ์ ์ ์ ์ ํ๊ฒ ๋ด์. ๊ทธ๋ฆฌ๊ณ ์ค์ค๋ก๊ฐ ์ฌ์ฉํ ๊ธฐ์ ์ ๋ํด ์์ ์๊ฒ ์ธ ์ ์์ด์ผ ํ๋ค.
์ ๊ณต์ ์ฐ๊ด์ด ์๋, ๋น์ ๊ณต ๊ฒฝํ๊ณผ ์ฐ๊ด์ด ์๋ ๊ฒฝ์ฐ ~ ๊ทธ ๊ฒฝํ์ ๋ น์ฌ๋ณด์
๋ถ์กฑํด๋, ์ผ๋จ ์ง์ํ๋ฉด์ ์์ฅ์ ํ๊ฐ๋ฅผ ๋ฐ์๋ณด์
* ํ๋ก์ ํธ์์ ๋ด๋นํ์ง ์์๋ ๋ถ๋ถ์ ๋ํด : ๋๋ต์ ์ธ ์ดํด๋ฅผ ํ ์ ์๋๋ก
:
'TIL, WIL > TIL๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
03. 30 TIL (0) | 2023.03.30 |
---|---|
03. 29 TIL (0) | 2023.03.29 |
03. 27 TIL (0) | 2023.03.27 |
03. 24 TIL (0) | 2023.03.24 |
03. 23 TIL (0) | 2023.03.23 |