#6 Indexes
#6.0 Introduction
๋๋ฆฐ ์ฟผ๋ฆฌ ์์ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํด์ฃผ๋ ์ธ๋ฑ์ค
#6.1 Table Scans
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฌด์ธ๊ฐ ์ฐพ๊ธฐ ์ํด ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ํ๋์ฉ ์ฐพ์๋ณด๋ ๊ฒ์ ์๋ฏธ
query plan - ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ป๊ฒ ๊ฐ์ฅ ํจ์จ์ ์ผ๋ก SQL ๋ฌธ์ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ๊ณํ
๋ฅผ ํ์ฉํด INDEX ํจ๊ณผ ํ์ธ. ์ค์บํ๋ ๋์ INDEX ์ฌ
#6.2 Create INDEX
๋ฐ์ดํฐ - ์คํ๋ ๋ ์ํธ์ ๋น์ทํ ๊ตฌ์กฐ๋ก ์ ์ฅ๋์ด ์์
์ธ๋ฑ์ค๋ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ฃ๊ตฌ์กฐ, ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ชจ๋ ํ ์ด๋ธ์ ๋ค์ ธ์ผ ํจ. ๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ ํ ์ด๋ธ์ ๊ฒ์ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ์ด๊ธฐ๋ ํจ
ํ์ง๋ง ๋ชจ๋ ๊ฒฝ์ฐ์์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ์ ํ์ํฌ ์ ์์. ํ์์ ๋ฐ๋ผ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข๋ค.
#6.4 B+ Trees
ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ ์ค ํ๋๋ก ํค์ ์ํด ์๋ณ๋๋ ๋ ์ฝ๋์ ํจ์จ์ ์ฝ์ , ๊ฒ์, ์ญ์ ๋ฅผ ํตํด ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ธฐ ์ํ ์๋ฃ ๊ตฌ์กฐ
root node : ๋ถ๋ชจ๊ฐ ์๋ ๋ ธ๋
leaf node : ์์์ด ์๋ ๋ ธ๋
sibling : ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ฐ์ง ๋ ธ๋ (ํ์ ๋ ธ๋)
#6.5 Leaf Nodes
์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ ธ๋, ํธ๋ฆฌ ๊ตฌ์กฐ์ ๊ฐ์ฅ ํ๋จ์ ์์นํ๋ฉฐ, ํด๋น ๋ ธํธ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค.
#6.7 Indexes and Keys
SQLite, MySQL ๋ฑ์ DB๋ Primary Key๊ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๋ ฌํ๋๋ฐ ์ฌ์ฉํ๊ณ ์์
๋ฐ๋ผ์ Primary Key๋ก ๊ฒ์ํ๋ ๊ฒ์ด ๋น ๋ฆ > Unique ๊ฐ์ Primary key๋ก ์ค์ ํ๋ ์ด์
SQLite์ ๊ฒฝ์ฐ ์๋์ ์ผ๋ก rowid๋ฅผ ์ถ๊ฐํ์ง๋ง MySQL์ ํน์ ํ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ์๋์ผ๋ก ์ถ๊ฐํ์ง ์๋๋ค.
#6.8 Multi Column Indexes
๋ค์ค Column์ index ์์ฑ, ๋ค์ค ์กฐ๊ฑด
#6.9 Covering Indexes
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํน์ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ ๋, ์ฟผ๋ฆฌ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ฑ์ค ์์ฒด์์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํ๋ ์ธ๋ฑ์ค. ๋ณธ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ง ์๊ณ ์ธ๋ฑ์ค๋ง์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ ์ ์๊ธฐ์ ์ฑ๋ฅ ํฅ์๋จ
๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ์ ์ ๋ฐ์ดํธ๋ ์ฝ์ ์ด ๋๋ ค์ง ์ ์์ผ๋ฏ๋ก ํญ์ ์ฌ์ฉํ๋๊ฑด ์ง์ํด์ผ ํจ
#6.10 When To Use Indexes
WHERE, ORDER BY, JOIN์์ ์์ฃผ ์ฌ์ฉํ๋ ์ด์ด ์์ ๊ฒฝ์ฐ
๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง ์ด์ด ์์ ๊ฒฝ์ฐ (๋์ ์นด๋๋๋ฆฌํฐ)
ํ ์ด๋ธ์ด ํด ๊ฒฝ์ฐ
์ธ๋ํค๊ฐ ์๋ ๊ฒฝ์ฐ
๊ณผ๋ํ ์ธ๋ฑ์ค ์ฌ์ฉ ๊ธ์ง (์ฝ์ , ์์ , ์ญ์ ์์ ์ด ์ง์ฐ๋ ์ ์์) > ๋ชจ๋ ๋จ์ผ ์ด๋ง๋ค ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค ํ์ ์์ (์ธ๋ฑ์ค๋ ๊ณต์ง๊ฐ ์๋)
์์ ์๋ฃ ํ ์ฟผ๋ฆฌ ์ต์ ํ ํ๊ธฐ
์ฌ๋ฌ ์ด์ ํจ๊ป ํํฐ๋งํ๊ฑฐ๋ ์ ๋ ฌํ๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ ๋ฉํฐ ์ด์ด๋ ๋ณตํฉ ์ธ๋ฑ์ค ์ฌ์ฉ
๊ฐ๋ฅํ๋ฉด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค ์ฌ์ฉ (๋น์ฉ ์ ๋ ด) > ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ ์ฑ๋ฅ์ ํฅ์ ์์ผ์ค ์ ์์ง๋ง ๊ฑฐ๋ํ์ง ์์
์์ ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ง ์๊ธฐ
์ ๋ฐ์ดํธ ๋น๋ ๊ณ ๋ ค > ๋ณ๊ฒฝ์ด ์ฆ์ ์ด์ ์ธ๋ฑ์ค ๋์์ด ์๋
ํฐ ํ ์คํธ ์ด์ B-ํธ๋ฆฌ ๋์ ์ ์ฒด ํ ์คํธ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ธฐ
Last updated
Was this helpful?