Day 26
๋ทฐ๋ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ถ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด
๋ทฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ ํ ์ด๋ธ์ด๋ ์ธ๋ฑ์ค ๋ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ํ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธ ๋ณธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ก ๋ฑ๋กํ ์ ์๋ SELECT ๋ช ๋ น์, ๊ฐ์ฒด๋ก์ ์ด๋ฆ์ ๋ถํ์ ๊ด๋ฆฌํ ์ ์๋๋ก ํ ๊ฐ์ฒด์ด๋ค select๋ ๋จ์ง ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐํํ๋ ๊ฒ์ด ๋์ด์ง๋ง, ๋ทฐ๋ฅผ ์ฐธ์กฐํจ์ผ๋ก์จ ๊ทธ์ ์ ์๋ SELECT ๋ช ๋ น์ ์คํ๊ฒฐ๊ณผ๋ฅผ ํ ์ด๋ธ์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
์ด๋ ๊ฒ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
์ด๋ ๊ฒ ์ฌ์ฉํ ์ ์๋ค ์ด๊ฒ ๋ฌด์จ ์๋ฏธ๊ฐ ์๋๋ผ๊ณ ํ๋ฉด ์๊ฐ๋ณด๋ค ๊ธธ์ด์ง๋ ์ฟผ๋ฆฌ๋ฌธ์์ GROUP BY๋ฑ์ผ๋ก ๋ฌถ๋ค๋ณด๋ฉด ์ ๋ง ๊ฐ๋ ์ฑ์ธ ๋ถ๋ถ๋ ๊ทธ๋ ๊ณ ๊ฒน์น๋ SELECT ๋ฌธ์ด ์๊ธธ์๋ ์์ ๊ทธ๋์ ๊ฒฐ๊ตญ์ ์์ฃผ ์ฌ์ฉํ๊ฑฐ๋ ๋ณต์กํ SELECT ๋ช ๋ น์ ๋ทฐ๋ก ๋ง๋ค์ด์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํ์
๊ฐ์ ํ
์ด๋ธ
๋ทฐ๋ฅผ ํ ์ด๋ธ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง๋ง ์ค์ฒด๊ฐ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ํ ์ด๋ธ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ด๋ค SELECT ๋ช ๋ น์ผ๋ก ์ด๋ฃจ์ด์ง๋ ๋ทฐ๋ ํ ์ด๋ธ์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฑฐ๋ ์ง์ธ ์ ์๋ ์ ์ฅ๊ณต๊ฐ์ ๊ฐ์ง์ง ์๋๋ค ๊ทธ๋์ ๋ง INSERT, UPDATE, DELETE ์ ๊ฐ์ ๋ช ๋ น์์๋ ์ฌ์ฉํ ์๋ ์์ง๋ง ๊ทธ๋ฅ SELECT ํ ๋๋ง ์ฌ์ฉํ์....
๋ทฐ ์์ฑ๊ณผ ์ญ์
๋ทฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ DDL๋ก ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๋ค CREATE VIEW, DROP VIEW ํค์๋๋ฅผ ํตํด์ ์ฌ์ฉํ๋ค
๋ทฐ์ ์์ฑ
CREATE VIEW ๋ค์์ ๋ทฐ์ ์ด๋ฆ์ ์ง์ ํ๊ณ AS๋ก SELECT ๋ช ๋ น์ ์ง์ ํด์ค๋ค ๋ทฐ๋ฅผ ๋ง๋๋๋ฐ ์์ด์ AS ๋ ์๋ต์ด ๋ถ๊ฐ๋ฅ ํ๋ค๋ ์
CREATE VIEW๋ก ๋ทฐ๋ฅผ ์์ฑํ๊ณ SELECT ์ ๊ฑฐ๋๋ฐ ์์ด์ ํ์์ ๋ฐ๋ผ์ ์ด์ ์์๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค
๋ง์ฝ์ ์ด ์์๋ฅผ ์๋ตํ ๊ฒฝ์ฐ์๋, ์๋์ผ๋ก ๋ทฐ์ ์ด์ด ์ง์ ๋๋ค ๊ทธ๋ฆฌ๊ณ SELECT ์ ๊ฐ์ ์์ ์ด์ ์ผ์ผ์ด ์ง์ ํด์ผ ํ๋ฏ๋ก SELECT ๋ช ๋ น์ ๋ชจ๋ ์ด์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์ด์ ์ง์ ํ์ง ์๋ ๊ฒ์ด ๋ ์ข์์ง๋?
๋ทฐ์ ์ญ์
๋ทฐ๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ์๋ DROP VIEW ๋ฅผ ์ฌ์ฉํด์ ์ญ์ ํ๊ณ ์ญ์ ํ๊ฒ ๋๋ฉด ๋์ด์์ ๋ทฐ๋ฅผ ์ฐธ์กฐํ ์ ์๋ค๋ ์
๋ทฐ์ ์ฝ์
์์์ ์ธ๊ธํ์ง๋ง ๋ทฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ด์ง๋ง ์ ์ฅ๊ณต๊ฐ์ ํ์๋กํ์ง ์๊ณ CPU ์์์ ์ก์๋จน๋๋ค SELECT๋ ๋จ์ํ๊ฒ ์กฐํํด์ ๋ฆฌํดํด์ฃผ๋ ๋ช ๋ น์ธ๋ฐ, ๊ฒ์, ORDER BY, GROUP BY ๋ฑ์ผ๋ก ์ง๊ณํ๋๋ฐ ๊ณ์ฐ๋ฅ๋ ฅ์ด ํ์ํด์ CPU๋ฅผ ์ฌ์ฉ
๋จธํฐ๋ฆฌ์ผ๋ผ์ด์ฆ๋ ๋ทฐ(Materialized View)
๋ทฐ์ ๊ทผ์์ด ๋๋ ํ ์ด๋ธ์ ๋ณด๊ดํ๋ ๋ฐ์ดํฐ์์ด ๋ง๊ฑฐ๋ ๋ทฐ๋ฅผ ์ค์ฒฉํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ฒ๋ฆฌ ์๋๊ฐ ๋จ์ด์ง๊ธฐ ์ฝ๋ค ์ด๋ฐ ์ํฉ์ ํํผํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋จธํฐ๋ฆฌ์ผ๋ผ์ด์ฆ๋ ๋ทฐ์ด๋ค ์ผ๋ฐ์ ์ผ๋ก ๋ทฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ค๊ฐ ์ฟผ๋ฆฌ๊ฐ ์ข ๋ฃ๋ ๋ ํจ๊ป ์ญ์ ๋๋ค ํ์ง๋ง ๋จธํฐ๋ฆฌ์ผ๋ผ์ด์ฆ๋ ๋ทฐ๋ ํ ์ด๋ธ์ฒ๋ผ ์ ์ฅ์ฅ์น์ ์ ์ฅํด๋๊ณ ์ฌ์ฉ ์ด๋ ๊ฒ ์ ์ฅํด๋๊ณ ์ฌ์ฉํ๊ฒ๋๋ฉด ์ด๋ฏธ ํ๋ฒ ์ฐธ์กฐํ๋ ๋ทฐ๋ฅผ ๋ค์ ํ ๋ฒ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ์ฒ์์ ์ฐธ์กฐํ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ ํ์ง๋ง ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ SELECT๋ฅผ ๋ค์ ์คํํด์ ๋ค์ ์ ์ฅํ๋ค ๋ค๋ฅธ์ ์ด ์๋ค๋ฉด ์ผ๋ฐ ๋ทฐ์ฒ๋ผ ๋งค๋ฒ SELECT ํ ํ์ ์๋ค๋์ ์ด๋ค ๋ฌผ๋ก ์ด ๋ชจ๋ ๊ฑด RDBMS๊ฐ ์์์ ํด์ค๋ค ํ์ง๋ง Oracle, DB2์์๋ง ์ง์ํ๊ณ MySQL์์๋ ์ง์ํ์ง ์๋๋ค
Last updated
Was this helpful?