Open zookong opened 1 year ago
SELECT ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ์ ๋, ์กฐํํ ํ๋๋ฅผ ์ง์ ๋ช ์ํ๋ ๊ฒ์ด ์กฐํ ์ฑ๋ฅ ํฅ์์ ์ํฅ์ ์ค ์ ์์๊น์?
MySQL ๋ด๋ถ์์ ์ตํฐ๋ง์ด์ ์ ์ํด ์คํ๊ณํ์ด ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ์คํ ๊ณํ์ ๋ฐ๋ผ ์ฟผ๋ฆฌ์ ์คํ ์๋๊ฐ ํฌ๊ฒ ์ํฅ์ ๋ฐ์ต๋๋ค. ํด๋น ์คํ ๊ณํ์ EXPLAIN ๋ช ๋ น์ด๋ฅผ ํตํด ์์ธ ๊ณํ์ ๋ณผ ์ ์์ต๋๋ค. ํ์ํ ํญ๋ชฉ๋ง ๊ธฐ์ ํ๋ ๊ฒฝ์ฐ ์ต์ ์ ์คํ๊ณํ์ ์ธ์ธ ํ๋ฅ ์ด ๋์์ง๊ธฐ ๋๋ฌธ์ "*"์ ๊ฐ์ด ์ ์ฒด ์นผ๋ผ์ ํญ์ ์กฐํํ๋ ์ฟผ๋ฆฌ๋ ์ง์ํด์ผ ํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก ์ธ๋ฑ์ค์ ํฌํจ๋ ์นผ๋ผ ์ด์ธ์ ๋๋จธ์ง ์นผ๋ผ์ผ๋ก ์ธํด ์ธ๋ฑ์ค ์คํต ์ค์บ์ ํ์ฉํ์ง ๋ชปํ๊ณ ํ ํ ์ด๋ธ ์ค์บ์ผ๋ก ์คํ ๊ณํ์ด ์๋ฆฝ๋ ์ ์์ต๋๋ค.
๋ณตํฉ ์ธ๋ฑ์ค๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋๋์?
v5.7 ๋ฒ์ ๊น์ง๋ ์ฒซ ์นผ๋ผ์ ์ธ๋ฑ์ค ์ ๋ ฌ์ ์ ์ฉํ์์ต๋๋ค. v8.0๋ถํฐ๋ ์นผ๋ผ์ ์์๋๋ก ์ ๋ ฌ ๊ธฐ์ค์ด ์ ์ฉ๋ฉ๋๋ค. ์ธ๋ฑ์ค๋ฅผ ์นผ๋ผ1, ์นผ๋ผ2 ์์๋ก ์ ์ฉํ์๋ค๋ฉด ์นผ๋ผ1์ ์์ฒญํ ์กฐ๊ฑด์ผ๋ก ์ ๋ ฌํ๊ณ ๋์ผํ ์นผ๋ผ1 ๋ด์์ ์นผ๋ผ2์ ์ ๋ ฌ์ ์ ์ฉํฉ๋๋ค
B-Tree์ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
๋ฃจํธ ๋ ธ๋, ๋ธ๋ ์ธ ๋ ธ๋, ๋ฆฌํ ๋ ธ๋ : ์ต์์ ๋ ธ๋ : ๋ฃจํธ, ๋ฆฌํ ๋ ธ๋๊ฐ ์๋ ์ค๊ฐ์ ๋ ธ๋ : ๊ฐ์ฅ ํ์ ๋ ธ๋, ์ค์ ๋ฐ์ดํฐ ๋ ์ฝ๋๋ฅผ ์ฐพ๊ธฐ ์ํ ์ฃผ์๊ฐ์ด ์กด์ฌ
์ธ๋ฑ์ค(B-Tree) ๊ฒ์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๊ธฐ ์ํด ์ค๊ณ์์ ๊ณ ๋ คํด์ผํ ๋ถ๋ถ์ ์ค๋ช ํด์ฃผ์ธ์.
B-Tree๋ ์๋์ ์ผ๋ก ์ฐ๊ธฐ ์์ ์ ๋น์ฉ์ด ๋ง์ด ๋๋๊ฒ์ผ๋ก ์๋ ค์ ธ์๋๋ฐ ์ ๊ทธ๋ด๊น์?
์ธ๋ฑ์ค ์ถ๊ฐ ์ถ๊ฐํ ์์น๋ฅผ ๊ฒ์ํ๊ณ ์์น๊ฐ ๊ฒฐ์ ๋๋ฉด ๋ฆฌํ ๋ ธ๋์ ์ ์ฅ, ๋ฆฌํ ๋ ธ๋๊ฐ ๊ฝ ์ฐจ๋ ๊ฒฝ์ฐ์๋ ๋ฆฌํ ๋ ธ๋๋ฅผ ๋ถ๋ฆฌํ๊ณ ์ด๋ ์์ ๋ธ๋ ์น๊น์ง ์ํฅ์ ์ค๋ค.
์ธ๋ฑ์ค ์ญ์ ๋ฆฌํ ๋ ธ๋๋ฅผ ์ฐพ์์ ์ญ์ ๋งํน, ๋งํน ์์ ๋ํ ๋์คํฌ ์ฐ๊ธฐ๊ฐ ํ์ํ๋ฏ๋ก ๋์คํฌ IO ๋ฐ์, ์ญ์ ๋ ๋ด๋ถ์ ์ผ๋ก ์ธ๋ฑ์คํค ์ญ์
์ธ๋ฑ์ค ๋ณ๊ฒฝ ์ธ๋ฑ์ค ์ญ์ ์ ์ธ๋ฑ์ค ์ถ๊ฐ๊ฐ ๋๋ค ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ๋ง์ ๋น์ฉ์ด ๋ฐ์, ๋ด๋ถ์ ์ผ๋ก๋ ์ฒด์ธ์ง ๋ฒํผ๋ฅผ ํ์ฉ
์กฐํํ ํ๋๊ฐ ์ธ๋ฑ์ค์ ์กด์ฌํ๋ ์ปฌ๋ผ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฉด(์ปค๋ฒ๋ง ์ธ๋ฑ์ค) ๋๋ค I/O๊ฐ ๊ฑฐ์ ๋ฐ์ํ์ง ์์ผ๋ฏ๋ก ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ ํด ๋ณผ ์์์๊ฒ ๊ฐ๋ค.
๋ณตํฉ ์ธ๋ฑ์ค๋ ๋ง์ฝ N๊ฐ์ ์ปฌ๋ผ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ณตํฉ์ธ๋ฑ์ค๋ผ๋ฉด N๋ฒ์งธ ํค ๊ฐ์ N-1๋ฒ์งธ ํค ๊ฐ์ ๋ํด์ ๋ค์ ์ ๋ ฌ๋๋ค. ์์ ๋ฒ์ ๊ฒฐ์ ์กฐ๊ฑด์ ์ปฌ๋ผ์ด ๋ง์ผ๋ฉด ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ ํ ์ ์๋ค.
๋ฃจํธ๋ ธ๋, ๋ธ๋์น ๋ ธ๋, ๋ฆฌํ๋ ธ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ฃจํธ ๋ ธ๋์ ๋ธ๋์น ๋ ธ๋๋ ์์ ๋ ธ๋์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ๋ฆฌํ ๋ ธ๋๋ ์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. B-Tree๋ ๋์จ์ง ์ค๋๋์ ์ฌ๋ฌ ๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ฐ ๋ํ์ ์ผ๋ก
B+Tree
,B*Tree
๋ฑ์ด ์๋ค.B*Tree
๋ B-Tree์ ํค ๊ฐ์ ์ถ๊ฐ ํ ๋ ๋ฆฌํ ๋ ธ๋๊ฐ ๊ฐ๋์ฐจ๋ฉด ๋ฆฌํ ๋ ธ๋๊ฐ ๋ถ๋ฆฌ๋์ด ์ ์ฅ๋๋ ๋ถ๋ถ์ ๋ณด์ํ ๊ตฌ์กฐ์ด๋ค. ๋ถ๋ฆฌ ๋์ ์ด์ํ ํ์ ๋ ธ๋๋ก ์ฌ ๋ฐฐ์น ํ๊ณ ๋ ์ด์ ์ฌ ๋ฐฐ์น ํ ์ ์๋ ์์ ์ ๋ถ๋ฆฌ ํจ.B+Tree
๋ ๋ฆฌํ๋ ธ๋์์ ๋ฆฌํ๋ ธ๋๋ผ๋ฆฌ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์๋ก ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ์ด๋ค. ์ด๋ ๋ฆฌํ ๋ ธ๋์์ ์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ์ ํ ๋ B-Tree๊ตฌ์กฐ ๋ณด๋ค ์ ๋ฆฌํ๊ฒ ์ค์บ ํ ์ ์๋ค.
๊ฒ์์ ๋นํด ๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ ๋๋ฌด ๋น๋ฒํ๊ฒ ์ผ์ด๋๋ ํ ์ด๋ธ์ธ์ง ? ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์กฐ๊ฑด์ ์ EQUAL ๋น๊ต๋ ๋ฌธ์์ด ํจํด ๊ฒ์ ์ ์ ๋ถ๋ถ ์ผ์น๋ก ๊ฒ์ ํ ์ ์๊ฒ๋ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ค. ๋ณตํฉ ์ธ๋ฑ์ค ๊ตฌ์ฑ์ ์ปฌ๋ผ์ ์์๊ฐ ์ค์ํ๋ฏ๋ก ์ด๋ฅผ ์ ๊ณ ๋ คํด์ ์ค๊ณํ๋ค.
B-Tree์ ์๋ก์ด ํค ๊ฐ์ ์ ์ฅ ํ ๋, ๋จผ์ ์ ์ฅ๋ ์์น๋ฅผ ๊ฒ์ํ๋ค. ์ ์ฅ๋ ์์น๊ฐ ๊ฒฐ์ ๋๋ฉด ๋ฆฌํ๋ ธ๋์ ํค ๊ฐ๊ณผ ๋์ ๋ ์ฝ๋์ ์ค์ ์ฃผ์๊ฐ์ ์ ์ฅํ๋ค. ์ด๋ ๋ฆฌํ๋ ธ๋๊ฐ ๊ฝ ์ฐจ์๋ค๋ฉด ๋ฆฌํ ๋ ธ๋๋ฅผ ๋ถ๋ฆฌํด์ ์ ์ฅ ํด์ผํ๋๋ฐ ์ด๋ ๋ถ๋ชจ ๋ ธ๋๊น์ง ์ํฅ์ ์ค๋ค. ๋ถ๋ฆฌ๋๋ฉด์ ๋ฆฌํ๋ ธ๋์ ์ฃผ์๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ๋ถ๋ชจ๊ฐ ๊ฐ์ง๊ณ ์๋ ์์ ๋ ธ๋์ ์ฃผ์๋ฅผ ๊ฐฑ์ ํด์ค์ผ ํ๋ค. ์ด๋ฌํ ์์ ํ์ ๋น์ฉ์ด ๋ง์ด ๋๋๊ฒ์ผ๋ก ์๋ ค์ ธ์๋ค.
๐ ๋ฌธ์ ๋ชฉ๋ก