๐Ÿ›ข๏ธDatabase

DB ์„ ํƒ๋„์™€ ์นด๋””๋„๋ฆฌํ‹ฐ (+์˜ตํ‹ฐ๋งˆ์ด์ € ํ†ต๊ณ„ ์ •๋ณด)

DevPoong 2025. 1. 9. 10:48

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜ ์ค‘, ์†๋„๊ฐ€ ๋Š๋ฆฐ ์ฟผ๋ฆฌ๋“ค์„ ์‹คํ–‰๊ณ„ํš์„ ๋ถ„์„ํ•˜์—ฌ ์ถ”์ถœํ•œ ๊ฒฝํ—˜์ด ์žˆ๋‹ค.

์‹คํ–‰๊ณ„ํš์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์˜ฌ๋ฐ”๋ฅธ ์ธ๋ฑ์Šค๋ฅผ ํƒ€๊ณ  ์žˆ๋Š”์ง€, 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. ํ…Œ์ด๋ธ” ํ†ต๊ณ„ ํ•ญ๋ชฉ

์ฃผ์š”ํ•œ ํ…Œ์ด๋ธ” ํ†ต๊ณ„ํ•ญ๋ชฉ์œผ๋กœ๋Š”

  1. ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ์ด ๋ ˆ์ฝ”๋“œ ์ˆ˜
  2. ํ…Œ์ด๋ธ” ๋ธ”๋ก ์ˆ˜
  3. ๋ ˆ์ฝ”๋“œ ๋‹น ํ‰๊ท  Bytes
  4. ์ƒ˜ํ”Œ๋งํ•œ ๋ ˆ์ฝ”๋“œ ์ˆ˜
  5. ํ†ต๊ณ„์ •๋ณด ์ˆ˜์ง‘์ผ์‹œ

 

2. ์ธ๋ฑ์Šค ํ†ต๊ณ„ ํ•ญ๋ชฉ

์ฃผ์š”ํ•œ ์ธ๋ฑ์Šค ํ†ต๊ณ„ํ•ญ๋ชฉ์œผ๋กœ๋Š”

  1. ์ธ๋ฑ์Šค Root์—์„œ Leaf ๋ธ”๋ก์— ๋„๋‹ฌํ•˜๊ธฐ ์ง์ „๊นŒ์ง€ ์ฝ๊ฒŒ๋˜๋Š” ๋ธ”๋ก์˜ ์ˆ˜
  2. ์ธ๋ฑ์Šค ๋ฆฌํ”„ ๋ธ”๋ก ์ด ๊ฐœ์ˆ˜
  3. ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ ๋ ˆ์ฝ”๋“œ ๊ฐœ์ˆ˜
  4. ์ธ๋ฑ์Šค ํ‚ค๊ฐ’์˜ ์กฐํ•ฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ’์˜ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜
  5. ์ธ๋ฑ์Šค ํ‚ค ๊ฐ’์„ ๋ชจ๋‘ "=" ์กฐ๊ฑด์œผ๋กœ ์กฐํšŒํ•  ๋•Œ ์ฝ๊ฒŒ ๋  ๋ฆฌํ”„ ๋ธ”๋ก ๊ฐœ์ˆ˜
  6. ์ธ๋ฑ์Šค ํ‚ค ๊ฐ’์„ ๋ชจ๋‘ "=" ์กฐ๊ฑด์œผ๋กœ ์กฐํšŒํ•  ๋•Œ ์ฝ๊ฒŒ ๋  ํ…Œ์ด๋ธ” ๋ธ”๋ก ๊ฐœ์ˆ˜
  7. ์ธ๋ฑ์Šค ํ‚ค๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ์—ฌ ์žˆ๋Š” ์ •๋„.

 

3. ์ปฌ๋Ÿผ ํ†ต๊ณ„ ํ•ญ๋ชฉ

์ฃผ์š”ํ•œ ์ปฌ๋Ÿผ ํ†ต๊ณ„ํ•ญ๋ชฉ์œผ๋กœ๋Š”

  1. ์ปฌ๋Ÿผ ๊ฐ’์˜ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜
  2. "=" ์กฐ๊ฑด์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ๋•Œ์˜ ์„ ํƒ๋„๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ•ด ๋†“์€ ๊ฐ’
  3. ์ปฌ๋Ÿผ ํ‰๊ท  ๊ธธ์ด
  4. ์ตœ์†Œ ๊ฐ’
  5. ์ตœ๋Œ€ ๊ฐ’
  6. ๊ฐ’์ด NULL์ธ ๋ ˆ์ฝ”๋“œ ์ˆ˜

๋“ฑ์น˜ ์กฐ๊ฑด์— ๋Œ€ํ•œ ์„ ํƒ๋„๋ฅผ ๊ตฌํ• ๋•Œ๋Š” Distinct Value๋ฅผ ํ†ต๊ณ„์ •๋ณด ์ˆ˜์ง‘ ๊ณผ์ •์—์„œ ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ด์ง„๋‹ค.

ํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๊ท ์ผํ•˜์ง€ ์•Š์€ ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด์„œ๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ํ™œ์šฉํ•œ๋‹ค.
์ปฌ๋Ÿผ ๊ฐ’๋ณ„๋กœ ๋ฐ์ดํ„ฐ ๋น„์ค‘ ๋˜๋Š” ๋นˆ๋„๋ฅผ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด๋†“์€ ๋ฐ์ดํ„ฐ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

 

์‹œ์Šคํ…œ ํ†ต๊ณ„ ํ•ญ๋ชฉ

 

์‹œ์Šคํ…œ ํ†ต๊ณ„๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ•˜๋“œ์›จ์–ด ์„ฑ๋Šฅ ํŠน์„ฑ์„ ์ธก์ •ํ•œ ๊ฒƒ์ด๋‹ค.

์ฃผ์š” ํ•ญ๋ชฉ์œผ๋กœ๋Š”

  1. CPU ์†๋„
  2. ํ‰๊ท  Single Block I/O ์†๋„
  3. ํ‰๊ท  Multi Block I/O ์†๋„
  4. ํ‰๊ท  Multi Block I/O ๊ฐœ์ˆ˜
  5. I/O ์„œ๋ธŒ์‹œ์Šคํ…œ์˜ ์ตœ๋Œ€ ์ฒ˜๋ฆฌ๋Ÿ‰
  6. ๋ณ‘๋ ฌ Slave์˜ ํ‰๊ท ์ ์ธ ์ฒ˜๋ฆฌ๋Ÿ‰

 

 

 

์ด๋Ÿฐ์‹์œผ๋กœ ์˜ค๋ธŒ์ ํŠธ ํ†ต๊ณ„์™€ ์‹œ์Šคํ…œ ํ†ต๊ณ„๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ Cost๋ฅผ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋œ๋‹ค.

์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ๊ฐ๊ฐ์„ ์ „๋ถ€ ์™ธ์šฐ๋Š” ๊ฒƒ์€ ํž˜๋“ค๊ณ  ์‹คํ–‰๊ณ„ํš์—์„œ์˜ Cost๊ฐ€ ์–ด๋– ํ•œ ๊ฒƒ์„ ๋ฐ˜์˜ํ•œ ๋น„์šฉ์ธ์ง€ ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.