CS ๊ณต๋ถ
์ธ๋ฑ์ค๊ฐ์ Hash๋ณด๋ค B-TREE๋ฅผ ์ฐ๋ ์ด์ ?
์์ง
2021. 11. 29. 19:22
Buckets (Hash Table)๋ O(1)๋ก ํ์์๊ฐ์ด ๋น ๋ฅด๋ค
- Hash ํจ์๋ ์ ๋ ฅ ๊ฐ(keys)์ด ๋ค์ด์ค๋ฉด ์ธ์ ๋ ๊ฐ์ ์ถ๋ ฅ ๊ฐ(Hash ๊ฐ)์ ๊ฐ์ง
- buckets์ index ๊ฐ์ผ๋ก ๋งคํ๋์ด ์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์์
- ๋ฏธ๋ฆฌ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ(buckets)์ ํ ๋ฒ์ ์ ๊ทผ์ ํ๊ธฐ ๋๋ฌธ์, ํ์ ์๊ฐ์ด O(1)๋ก ๋น ๋ฆ
- Hash ๊ฐ์ด ์ถฉ๋์ด ์ผ์ด๋๋ ๋ฑ์ ์ต์ ์ ๊ฒฝ์ฐ, O(N)์ด ๋ ์๋ ์์
ํ์์๊ฐ์ด ๋น ๋ฅธ Hash๊ฐ ์ธ๋ฑ์ค๋ก ์ ์ ํ์ง ์์ ์ด์
- ๋จ ํ๋์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ์๊ฐ์ด O(1)์ผ๋ก ๋น ๋ฅธ ๊ฒ์ด๋ค.
- Hash Table์ ์ ์ฅ๋๋ ๊ฐ๋ค์ ์ ๋ ฌ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ํน์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ์์ ๊ฐ์ ์ฐพ์ ์ ์๋ค.
- SQL ์ฟผ๋ฆฌ๋ฌธ์์ ํน์ ๋ฒ์์ ๊ฐ์ ์กฐํํ๋ ๊ฒฝ์ฐ, ํน์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ์์ ๊ฐ์ ์ฐพ์ ์ ์๋ค.
SELECT .. FROM tb_hash WHERE column >= '๊ฒ์์ด';
SELECT .. FROM tb_hash WHERE column BETWEEN 100 AND 120;
SELECT .. FROM tb_hash WHERE column LIKE '๊ฒ์์ด%'
SELECT .. FROM tb_hash WHERE column <> '๊ฒ์์ด';
- ๋ฒ์ ๋น๊ต๋ ๋ถ์ ํ ๋น๊ต๊ฐ ํฌํจ๋ SQL ์ฟผ๋ฆฌ๋ ํด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
ํ๊ท Tree์ ํ์ ์๊ฐ๋ณต์ก๋ : O(logN)
์ต์ Tree์ ํ์ ์๊ฐ๋ณต์ก๋ : O(N)
- ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด์ Balanced Tree๋ฅผ ์ฌ์ฉํ๋ค.
B Tree -- Balanced Tree -- ๊ท ํ์กํ Tree
- ์ต์ ์ ๊ฒฝ์ฐ์ฒ๋ผ ํธ๋ฆฌ๊ฐ ํ์ชฝ์ผ๋ก ์ ๋ฆฌ์ง ์๊ฒ ํธ๋ฆฌ๊ฐ ์ฌ์ ๋ ฌ
- ๋ ธ๋ ์ฝ์ ๋ฐ ์ญ์ ์์ ํน์ ๊ท์น์ ๋ฐ๋ผ ์ข / ์ฐ SubTree์ ๋ฐธ๋ฐ์ค๋ฅผ ์ ์งํ๋ Tree
- ํ์์ ๋ํ ์๊ฐ ๋ณต์ก๋ : ์ธ์ ๋ O(logN)
- ๋ ธ๋ ์ฝ์ , ์ญ์ , ๋ณ๊ฒฝ --> ํธ๋ฆฌ ์ฌ์ ๋ ฌ ์์ --> ์ผ๋ฐ์ ์ธ Tree๋ณด๋ค ์๊ฐ๋ณต์ก๋ ์ฑ๋ฅ์ด ์ข์ง ์์
์ถ์ฒ
jsj3282, https://velog.io/@jsj3282/17.-%ED%95%B4%EC%8B%9CHash-%EC%9D%B8%EB%8D%B1%EC%8A%A4