ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ์ค, ์๋๊ฐ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ค์ ์คํ๊ณํ์ ๋ถ์ํ์ฌ ์ถ์ถํ ๊ฒฝํ์ด ์๋ค.
์คํ๊ณํ์์ ์ค์ํ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ์ธ๋ฑ์ค๋ฅผ ํ๊ณ ์๋์ง, Cost๊ฐ ๋น์ ์์ ์ผ๋ก ๋์์ง ๋ฑ์ ํ์ธํ๋ค.
ํด๋น ์์ ์ ์งํํ๋ฉด์ Cost๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ณ์ฐ๋๋์ง ๊ถ๊ธํ์ฌ ์ฐพ์๋ณธ ๊ฒ์ ์ฌ๊ธฐ์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
์ตํฐ๋ง์ด์ ์ ํต๊ณ ์ ๋ณด์ ๊ฒฝ์ฐ ๊ฐ๊ฐ์ ์ธ์ฐ๊ธฐ๋ณด๋ค๋ ์คํ๊ณํ์์์ Cost๊ฐ ์ด๋ ํ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐ๋ ๊ฒ์ธ์ง ์ฐธ๊ณ ํ๋ ์ ๋๋ก ๋ฌํํ๊ฒ ์๊ฐํด์ผ ํ ๊ฒ ๊ฐ๋ค.
์ ํ๋์ ์นด๋๋๋ฆฌํฐ
์ฐ์ , ์ตํฐ๋ง์ด์ ๊ฐ ์ฒ์์ผ๋ก ๊ณ์ฐํ๋ ์นด๋๋๋ฆฌํฐ๊ฐ ๋ฌด์์ธ์ง ์ ํ๋์ ํจ๊ป ์์๋ณด์.
1. ์ ํ๋ (Selectivity)
๋ฐ์ดํฐ์์ ํน์ ๊ฐ์ ์ผ๋ง๋ ์ ์ ํํ ์ ์๋์ง์ ๋ํ ์งํ์ด๋ค.
์ ํ๋๋ ๋ฎ์์๋ก ์ธ๋ฑ์ค ์ค์ ์ ์ข์ ์ปฌ๋ผ์ด๋ค.
์ ํ๋ = (์ปฌ๋ผ์ ํน์ ๊ฐ์ ๋ ์ฝ๋ ์ / ํ
์ด๋ธ์ ์ด ๋ ์ฝ๋ ์) * 100
์ ํ๋๋ 5~10%๊ฐ ์ ๋นํ๋ค.
+) ํ์คํ ๊ทธ๋จ ์์ด ๋ฑ์น(=) ์กฐ๊ฑด์ ๋ํ ์ ํ๋๋ฅผ ๊ตฌํ๋ ๊ณต์์ ์ ํ๋ = 1 / Distinct Value ๊ฐ์ = 1 / num_distinct
2. ์นด๋๋๋ฆฌํฐ (Cardinality)
์นด๋๋๋ฆฌํฐ๋ ์ปฌ๋ผ์ ์ฌ์ฉ๋๋ ๊ฐ์ ๋ค์์ฑ ์ ๋๋ฅผ ์๋ฏธํ๋ค. ๊ฐ์ ์ค๋ณต์ด ์ ์์๋ก ์นด๋๋๋ฆฌํฐ๋ ๋๋ค๊ณ ๋ณผ ์ ์๋ค.
์ฆ, ์นด๋๋๋ฆฌํฐ๊ฐ ๋์ ์๋ก ์ธ๋ฑ์ค ์ค์ ์ ์ข์ ์ปฌ๋ผ์ด๋ค.
์นด๋๋๋ฆฌํฐ = ์ ํ๋*์ ์ฒด๋ ์ฝ๋์
โ
start_at ์ปฌ๋ผ์ '2023-08-01 08:00:00' ๊ณผ ๊ฐ์ DATETIME๊ฐ์ผ๋ก ์ ์ฅ๋๊ณ ์ค๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ์ ์ผ๋ฏ๋ก ์นด๋๋๋ฆฌํฐ๊ฐ ๋๋ค.
์ตํฐ๋ง์ด์ ์ ํต๊ณ์ ๋ณด ํ์ฉ
์ตํฐ๋ง์ด์ ๋ ์ ํ๋ ๊ณ์ฐ์ ์์์ผ๋ก ์นด๋๋๋ฆฌํฐ๋ฅผ ๊ณ์ฐํ๋ค. ๋ํ, ๊ทธ๋งํผ์ ๋ฐ์ดํฐ๋ฅผ ์ก์ธ์คํ๋๋ฐ ๋๋ ๋น์ฉ์ ๊ณ์ฐํด์ ํ ์ด๋ธ ์ก์ธ์ค ๋ฐฉ์, ์กฐ์ธ ์์, ์กฐ์ธ ๋ฐฉ์ ๋ฑ์ ๊ฒฐ์ ํ๊ฒ ๋๋ค.
์ด๋ฅผ ์ํด์, ํต๊ณ์ ๋ณด๋ฅผ ์์งํ๋ ์ฃผ๊ธฐ์ ์ํ๋ง ๋น์จ ๋ฑ์ ์ ๊ฒฐ์ ํด์ผ ํ๋ค.
ํต๊ณ์ ๋ณด์ ์ข ๋ฅ๋ ์ค๋ธ์ ํธ ํต๊ณ(ํ ์ด๋ธ, ์ธ๋ฑ์ค, ์ปฌ๋ผ(ํ์คํ ๊ทธ๋จ ํฌํจ))์ ์์คํ ํต๊ณ๊ฐ ์๋ค.
๊ฐ๊ฐ์ด ์ด๋ค ์ ๋ณด๋ฅผ ํฌํจํ๋์ง ๋ฌํํ๊ฒ ์ดํดํ๋ ์ ๋๋ก๋ง ์์๋ณด์.
์ค๋ธ์ ํธ ํต๊ณ ํญ๋ชฉ
1. ํ ์ด๋ธ ํต๊ณ ํญ๋ชฉ
์ฃผ์ํ ํ ์ด๋ธ ํต๊ณํญ๋ชฉ์ผ๋ก๋
- ํ ์ด๋ธ์ ์ ์ฅ๋ ์ด ๋ ์ฝ๋ ์
- ํ ์ด๋ธ ๋ธ๋ก ์
- ๋ ์ฝ๋ ๋น ํ๊ท Bytes
- ์ํ๋งํ ๋ ์ฝ๋ ์
- ํต๊ณ์ ๋ณด ์์ง์ผ์
2. ์ธ๋ฑ์ค ํต๊ณ ํญ๋ชฉ
์ฃผ์ํ ์ธ๋ฑ์ค ํต๊ณํญ๋ชฉ์ผ๋ก๋
- ์ธ๋ฑ์ค Root์์ Leaf ๋ธ๋ก์ ๋๋ฌํ๊ธฐ ์ง์ ๊น์ง ์ฝ๊ฒ๋๋ ๋ธ๋ก์ ์
- ์ธ๋ฑ์ค ๋ฆฌํ ๋ธ๋ก ์ด ๊ฐ์
- ์ธ๋ฑ์ค์ ์ ์ฅ๋ ๋ ์ฝ๋ ๊ฐ์
- ์ธ๋ฑ์ค ํค๊ฐ์ ์กฐํฉ์ผ๋ก ๋ง๋ค์ด์ง๋ ๊ฐ์ ์ข ๋ฅ ๊ฐ์
- ์ธ๋ฑ์ค ํค ๊ฐ์ ๋ชจ๋ "=" ์กฐ๊ฑด์ผ๋ก ์กฐํํ ๋ ์ฝ๊ฒ ๋ ๋ฆฌํ ๋ธ๋ก ๊ฐ์
- ์ธ๋ฑ์ค ํค ๊ฐ์ ๋ชจ๋ "=" ์กฐ๊ฑด์ผ๋ก ์กฐํํ ๋ ์ฝ๊ฒ ๋ ํ ์ด๋ธ ๋ธ๋ก ๊ฐ์
- ์ธ๋ฑ์ค ํค๊ฐ ๊ธฐ์ค์ผ๋ก ํ ์ด๋ธ ๋ฐ์ดํฐ๊ฐ ๋ชจ์ฌ ์๋ ์ ๋.
3. ์ปฌ๋ผ ํต๊ณ ํญ๋ชฉ
์ฃผ์ํ ์ปฌ๋ผ ํต๊ณํญ๋ชฉ์ผ๋ก๋
- ์ปฌ๋ผ ๊ฐ์ ์ข ๋ฅ ๊ฐ์
- "=" ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ ๋์ ์ ํ๋๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํด ๋์ ๊ฐ
- ์ปฌ๋ผ ํ๊ท ๊ธธ์ด
- ์ต์ ๊ฐ
- ์ต๋ ๊ฐ
- ๊ฐ์ด NULL์ธ ๋ ์ฝ๋ ์
๋ฑ์น ์กฐ๊ฑด์ ๋ํ ์ ํ๋๋ฅผ ๊ตฌํ ๋๋ Distinct Value๋ฅผ ํต๊ณ์ ๋ณด ์์ง ๊ณผ์ ์์ ์ ํํ๊ฒ ๊ตฌํ๋ ๊ฒ์ด ์ค์ํด์ง๋ค.
ํ์ง๋ง, ๋ฐ์ดํฐ ๋ถํฌ๊ฐ ๊ท ์ผํ์ง ์์ ์ปฌ๋ผ์ ๋ํด์๋ ํ์คํ ๊ทธ๋จ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ํ์ฉํ๋ค.
์ปฌ๋ผ ๊ฐ๋ณ๋ก ๋ฐ์ดํฐ ๋น์ค ๋๋ ๋น๋๋ฅผ ๋ฏธ๋ฆฌ ๊ณ์ฐํด๋์ ๋ฐ์ดํฐ๋ฅผ ํ์คํ ๊ทธ๋จ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
์์คํ ํต๊ณ ํญ๋ชฉ
์์คํ ํต๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ํ๋์จ์ด ์ฑ๋ฅ ํน์ฑ์ ์ธก์ ํ ๊ฒ์ด๋ค.
์ฃผ์ ํญ๋ชฉ์ผ๋ก๋
- CPU ์๋
- ํ๊ท Single Block I/O ์๋
- ํ๊ท Multi Block I/O ์๋
- ํ๊ท Multi Block I/O ๊ฐ์
- I/O ์๋ธ์์คํ ์ ์ต๋ ์ฒ๋ฆฌ๋
- ๋ณ๋ ฌ Slave์ ํ๊ท ์ ์ธ ์ฒ๋ฆฌ๋
์ด๋ฐ์์ผ๋ก ์ค๋ธ์ ํธ ํต๊ณ์ ์์คํ ํต๊ณ๋ฅผ ์ข ํฉํ์ฌ Cost๋ฅผ ๊ณ์ฐํ๊ฒ ๋๋ค.
์์์ ๋งํ๋ฏ์ด ๊ฐ๊ฐ์ ์ ๋ถ ์ธ์ฐ๋ ๊ฒ์ ํ๋ค๊ณ ์คํ๊ณํ์์์ Cost๊ฐ ์ด๋ ํ ๊ฒ์ ๋ฐ์ํ ๋น์ฉ์ธ์ง ์ ๋๋ก ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
'๐ข๏ธDatabase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ตํฐ๋ง์ด์ ํํธ์ ๋ํด์ (0) | 2025.01.09 |
---|---|
XA Datasource์ 2 Phase Commit(2PC)ย ์ ๋ํด์ (0) | 2024.05.08 |
MySQL์ ๊ฒฉ๋ฆฌ ์์ค(Isolation Level) (0) | 2023.09.11 |
[Real MySQL 8.0] ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ - JOIN (0) | 2023.08.22 |
Redis ์๊ณ ์ฌ์ฉํ์! (0) | 2023.08.20 |