Join - KimJangHyeon/MyDBMS GitHub Wiki
๊ตฌ์กฐ์ฒด
leafpage ๊ฐ column์ ๋ํ์ฌ min, max๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ ๋ง๋ จํ๊ธฐ ์ํด record 32->30 for(min, max col) ๋ก leaf์ ์ ์ฅ๊ฐ๋ฅํ record์ ๊ฐฏ์๋ฅผ 2๊ฐ ์ค์์ต๋๋ค.
scan_table
- tid์์ ํ์ํ col์ ๋ํ์ฌ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋๋ฆฝ๋๋ค.
- ์ด๋ ๋ฏธ๋ฆฌ ํ์ด์ง์์ ์ ์ฅํด ๋์ ํ์ด์ง๋ณ min, max๋ฅผ ๊ฐ์ง๊ณ ์ค๊ธฐ ๋๋ฌธ์ ์กฐ์ธํ ํ ์ด๋ธ์ ๋๋ต์ ์ธ ์ ๋ณด๋ฅผ ์ ์ ์์ต๋๋ค.
- ๋ค์ด์จ ์ฟผ๋ฆฌ๋ฅผ ๋๋์ด join_infos (vector์ ์ ์ฅ
- ์ด๋ ํ์ฑ์ ํ๋ฉด์ ํ์ฌ๊น์ง ๋ฑ์ฅํ ๋ชจ๋ tid๊ณผ ์นผ๋ผ์ ์กฐ์ฌํ์ฌ ์ด์ ํด๋นํ๋ JoinData๋ฅผ ๋ง๋ฌ
- JoinData๋ค์ ๋ํ์ฌ scan_table์ ์ฌ์ฉํด record๋ฅผ ๋ชจ๋ ์ฑ์
- join_ordering: ์ด์ join_infos์ ๋ํ์ฌ ์ด๋ค ์์๋ก joinํ๋ ๊ฒ catalog๊ฐ ์์ฑ ๋์์ผ๋ฏ๋ก ์ด์ ๋ง๊ฒ join_infos์ ์์๋ฅผ ๋ณ๊ฒฝ
- JoinSet์ join_infos, join_datas๋ค์ ๊ฐ์ง๊ณ left most tree๋ฅผ ๋ง๋ ๋ค.
- ๊ฐ ๋ ธ๋ ๋ง๋ค join์ ํ๋ค. ์ด๋, join์ค์ธ ๋ ธ๋๋ณด๋ค 2๋ ธ๋ ์๋์ ์๋ ๋ ธ๋๋ free์์ผ์ค๋ค.