๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[CS186] Introduction to Database Systems - Week 6

by moon101 2023. 6. 3.

โ›… Joins โ›…

  • final write cost๋Š” ์กฐ์ธ ๋ชจ๋ธ ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, ์กฐ์ธ๋œ ํ…Œ์ด๋ธ”์„ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๋Š” ๋น„์šฉ์„ ๋ฌด์‹œํ•˜๋Š”๋ฐ, ์กฐ์ธ๋œ ํ…Œ์ด๋ธ”์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž์— ์˜ํ•ด ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

 

Simple Nested Loop Join

  • ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€ ๋‘๊ฐœ์˜ ์ค‘์ฒฉ๋œ for loop๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค
  • ์˜ˆ๋ฅผ ๋“ค์–ด, R ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ S ํ…Œ์ด๋ธ”์—์„œ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
  • I/O cost = [R]+|R|[S]     [R]์€ R ํ…Œ์ด๋ธ”์˜ ํŽ˜์ด์ง€ ์ˆ˜์ด๊ณ  |R|๋Š” R์˜ ๋ ˆ์ฝ”๋“œ ์ˆ˜์ด๋‹ค

pseudocode for SNLJ

 

Page Nested Loop Join

  • R์˜ ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค S์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ์ฝ๋Š”๋‹ค
  • I/O cost = [R] + [R][S]  -> R๊ณผ S ์ค‘์—์„œ ๋” ์ž‘์€ ํ…Œ์ด๋ธ”์„ ์™ธ๋ถ€๋กœ ๋‘๋ฉด ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค

pseudocode for PNLJ

 

Block Nested Loop Join

I/O cost

  • Page Nested Loop Join๋„ ์ข‹์ง€๋งŒ ์•„์ง ๋ฒ„ํผ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค
  • S๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ์ ์„ ์ˆ˜๋ก I/O ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, B ๋ฒ„ํผ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์„ ๋•Œ B-2 ํŽ˜์ด์ง€๋ฅผ R์— ์‚ฌ์šฉํ•˜๊ณ , 1 ํŽ˜์ด์ง€๋ฅผ S์—, ๋‚˜๋จธ์ง€ 1ํŽ˜์ด์ง€๋ฅผ ์•„์›ƒํ’‹ ๋ฒ„ํผ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ Block Nested Loop Join (or Chunk Nested Loop Join) ์ด๋ผ๊ณ  ํ•œ๋‹ค

pseudocode for BNLJ

 

Index Nested Loop Join

  • S์— ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
  • I/O cost = [R] + |R|∗(cost to look up matching records in S)

pseudocode for Index Nested Loop Join

 

Hash Join

  • Naive Hash Join๊ณผ Grace Hash Join์ด ์žˆ๋‹ค
  • Grace Hash Join์€ key skew์— ๋ฏผ๊ฐํ•˜๋‹ค. 
  • Key skew๋Š” ํ•ด์‹œํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ƒ๋‹น ์ˆ˜์˜ ํ‚ค๊ฐ€ ๋˜‘๊ฐ™์€ ๊ณณ์— ๊ฐ€๋Š” ๊ฒฝ์šฐ, ์ฆ‰ ๋งŽ์€ ์–‘์˜ ๋ ˆ๊ณ ๋“œ๊ฐ€ ๋˜‘๊ฐ™์€ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•œ๋‹ค

 

Sort-Merge Join

  • R๊ณผ S๋ฅผ ๋จผ์ € ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด  ๋„์›€์ด ๋  ๋•Œ๊ฐ€ ์žˆ๋‹ค (์˜ˆ๋ฅผ ๋“ค์–ด, ์ฟผ๋ฆฌ์— ORDER BY๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ)

 

 

// TODO

ํ•ด์‹œ ์กฐ์ธ ์ข€ ๋” ์ฐพ์•„๋ณด๊ธฐ

์ „์ฒด์ ์œผ๋กœ ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง„ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค

 

 

 

 

 

์ฐธ๊ณ ์ž๋ฃŒ

https://cs186berkeley.net/

๋Œ“๊ธ€