0. ํ์ต ๋ชฉ์
- ์ธ๋ฑ์ค ํ์ฅ์ด ๋ฌด์์ธ์ง ์ดํดํ๋ค.
- ์ธ๋ฑ์ค ํ์ฅ ์ ๋ต์ ์ฅ์ ์ ์ดํดํ๋ค.
1. ์ธ๋ฑ์ค ํ์ฅ ์ด๋?
Index Extension์ InnoDB๋ฅผ ์ฌ์ฉํ๋ ํ
์ด๋ธ์์ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ ๋, ๊ทธ ๋ณด์กฐ ์ธ๋ฑ์ค์ ์๋ ์ถ๊ฐ๋ PK๋ ํจ๊ป ํ์ฉํ ์ ์๊ฒ ํ ์ง ๋ง์ง๋ฅผ ์ ํ๋ ์ต์
์ด๋ค.
ํด๋น ์ต์
์ ํ์ฑํํ๋ฉด, ๋ณด์กฐ์ธ๋ฑ์ค๋ฅผ (๋ณด์กฐ ์ธ๋ฑ์ค, PK) ๋ก ๋ ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ด ํ ์ด๋ธ์ด ์๋ค๊ณ ํด๋ณด์.
-- ํ
์ด๋ธ ์์ฑ
CREATE TABLE dept_emp (
dept_no INT NOT NULL,
emp_no CHAR(4) NOT NULL,
salary INT,
from_date DATE NOT NULL,
PRIMARY KEY (dept_no, emp_no)
INDEX ix_fromdate (from_date)
)engine='innodb';
๋ณด์กฐ์ธ๋ฑ์ค์ธ ix_fromdate๋ ์ค์ง from_date๋ง ์ปฌ๋ผ ํค๋ก ๊ฐ์ง๊ณ ์๋ค. ํ์ง๋ง Index Extension์ ์ผ๋๋ฉด ๋ณด์กฐ์ธ๋ฑ์ค๋ฅผ (from_date, dept_no, emp_no) ํํ์ ๋ณตํฉ ์ธ๋ฑ์ค์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ด ์๋ค.
2. ์ฅ์
- ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๊ฐ ๊ฐ๋ฅํด์ง
- ๋ณด์กฐ์ธ๋ฑ์ค์ ๋ฆฌํ๋
ธ๋ ์ PK๋ก ์ ๋ ฌ ์์
๋ ๊ฐ๋ฅํด์ง.
(1) ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๊ฐ ๊ฐ๋ฅํด์ง.
explain select count(*) from dept_emp where from_date = '1987-02-25' AND dept_no = 'd001'
๋ค์๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ๋ฌธ์ ๊ฒฝ์ฐ , ์์์ ๋ง๋ ix_fromdate์ ํค ์ปฌ๋ผ๊ณผ PK๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ง๋ค. ๋ฐ๋ผ์ ๋ณธ ํ
์ด๋ธ ์ฝ๊ธฐ ์์ด ๋ณด์กฐ ์ธ๋ฑ์ค ์ปฌ๋ผ๋ง ์ฝ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค.
์คํ ๊ณํ์ ๋ณด๋ฉด ์ด๋ฅผ ์ ์ ์๋ค.
| id | select_type | table | tpye | key | key_len | ref |
|---|---|---|---|---|---|---|
| 1 | SIMPLE | dept_emp | ref | ix_fromdate | 19 | const, const |
์์ ๊ฐ์ด ์คํ ๊ณํ์ด ๋์ค๋๋ฐ, ๋ณธ ํ
์ด๋ธ์ ์ฝ๋ ํ๋์ ํ์ง ์์์์ ์ ์ ์๋ค. ๋ํ ์ธ๋ฑ์ค ๊ตฌ์ฑ ์ปฌ๋ผ ์ค ์ด๋ ์ปฌ๋ผ๊น์ง ์ฌ์ฉํ๋์ง๋ฅผ ๋ฐ์ดํธ ์๋ฅผ ๋ณด์ฌ์ฃผ๋ key_len์ด 19์์ด ๋ณด์ธ๋ค. ์ด๋ from_date๊ฐ DATE ํ์
์์ผ๋ก 3 ๋ฐ์ดํธ, dept_no ๊ฐ CHAR(4)๋ก 16๋ฐ์ดํธ ์ฆ ์ ํํ๊ฒ ๋ ๊ฐ์ ์ปฌ๋ผ์ ์ด์ฉํ์์ ์ ์ ์๋ค.
(2) ๋ณด์กฐ ์ธ๋ฑ์ค์ PK๋ก ์ ๋ ฌ ์์ ๋ ๊ฐ๋ฅํด์ง
explain
select *
from dept_emp
where from_date = '1987-02-25'
order by dept_no
ix_fromdate๊ฐ (from_date, dept_no, emp_no) ๋ณตํฉ ์ธ๋ฑ์ค์ฒ๋ผ ๋์ด ์์ผ๋ฏ๋ก, ์์ ์ฟผ๋ฆฌ๋ฌธ์ from_date์ range-scan์ผ๋ก ์ฐพ์ ์ ํจํ ๋ฒ์๋ฅผ ๋ฐ๋ก ๋ฐํํ๋ฉด ๋๋ค. ์๋ํ๋ฉด ์ด๋ฏธ dept_no๋ก ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
3. ํต์ฌ ์์ฝ
- ์ธ๋ฑ์ค ํ์ฅ์ ์ตํฐ๋ง์ด์ ๊ฐ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ (๋ณด์กฐ์ธ๋ฑ์ค, PK) ํํ์ ๋ณตํฉ ์ธ๋ฑ์ค์ธ ๊ฒ์ผ๋ก ์ธ์ํ๊ณ ํ์ฉํ ์ ์๋๋ก ํด์ฃผ๋ ์ต์ ์ด๋ค.
- ํด๋น ์ต์ ์ ํตํด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๊ฐ ๊ฐ๋ฅํด์ก๊ณ , ๋ณด์กฐ ์ธ๋ฑ์ค์ PK๋ฅผ ์ ๋ ฌ ์์ ์๋ ํ์ฉํ ์ ์๊ฒ ๋์๋ค.