index๋ ์์ธ์ผ๋ก index๋ฅผ ์ง์ ํ๊ฒ ๋๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ ๋น ๋ฅธ ์๋๋ก ์ฐพ์์ฌ ์ ์๊ฒ ๋๋ค.
index์๋ Clustering index
์ Non-Clustering index
๊ฐ ์กด์ฌํ๋๋ฐ Clustering index
์ ๊ฒฝ์ฐ ํ ๋ฐ์ดํฐ๋ฅผ ์์์ ๋ง์ถฐ์ ์๋์ผ๋ก ์ ๋ ฌํ๋๋ฐ ์์ด ์ฌ์ ์ ์๊ฐํ๋ฉด ๋๋ค(๋น์ทํ pk๋ผ๋ฆฌ ๋ฌถ์ด์ ๊ด๋ฆฌ) ํ๊ฐ์ ํ
์ด๋ธ๋ง ์์ฑ์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋๋ก Non-clustering index
๋ ์ง์ index๋ฅผ ์ง์ ํด์ฃผ๋ ๊ฒ์ผ๋ก ํ
์ด๋ธ๋น ์ฌ๋ฌ๊ฐ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
index๋ ์ด ๋จ์๋ก ์์ฑ์ด ๊ฐ๋ฅํ๋ฉฐ pk ์ง์ ์ ์๋์ผ๋ก Clustering index
๊ฐ ์์ฑ์ด ๋๋ค.
CREATE TABLE member (
id INT NOT NULL AUTO_INCREMENT
};
Clustering index
์ ๊ฒฝ์ฐ pk๋ฅผ ํค๊ฐ์ ์์๋๋ก ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ํ๋ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์์ฌ ์ ์๋ฐ. ๊ทธ๋ฌ๋ ๋จ์ ์ผ๋ก๋ update, delete, insert์ ์์
์ด ๋๋ฆฌ๋ค๋ ๊ฒ์ธ๋ฐ ์์๋๋ก ์ ๋ ฌ๋์ด ์๋ ๋ฐ์ดํฐ๊ฐ 10๋ง๊ฐ์ธ ๊ฒฝ์ฐ 1๋ฒ index๋ฅผ ์ ๊ฑฐํ๋ค๋ฉด ํค ๊ฐ์ ์์๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ ์ฝ๋๋ฅผ ์ด๋์ํค๊ณ ์ด๋ ์ฑ๋ฅ์ ํ๋ฅผ ๋ถ๋ฅธ๋ค. ๋ํ (์ค๋ช
ํ๊ธฐ ์ด๋ ต์ง๋ง) pk๋ ์ค์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์์น๋ฅผ ์ง๋๊ณ ์๊ณ Non-Clustering-index
์ ๊ฒฝ์ฐ Clustering
์ ํค๋ก ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ pk์ ๊ฐ์ด ์ปค์ง๋ฉด ๊ทธ๋งํผ ๋๋ง์ index์ ํฌ๊ธฐ ๋ํ ๋์ด๋๊ฒ ๋๋ค๋ ๋จ์ ์ด ์๋ค. ๊ทธ๋ผ์๋ Clustering index
๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ฝ๊ธฐ์ ์ฐ๊ธฐ๊ฐ 8:2์ ๋์ ๋น์จ์ ์ง๋๊ธฐ ๋๋ฌธ์ด๋ค.
Non-clustering index
์ ๊ฒฝ์ฐ๋ Clustering๊ณผ๋ ๋ค๋ฅด๊ฒ ์์๋๋ก ๋์ด ์์ง ์๋ค. Non-Clustering-index
์ ๊ฒฝ์ฐ leaf-node์ pk์ ๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌ์ ์กฐ๊ธ ๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. Non-Clustering-index
๋ ์ค๋ณต๋๊ฐ ๋ฎ์ ๊ฐ์ ์ง์ ํด์ฃผ์ด์ผ ๋ ํฐ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
mysql์ ๊ฒฝ์ฐ ๋ฒ์ ๋ง๋ค ๋ค๋ฅด์ง๋ง ์ต๊ทผ์๋ InnoDB๋ฅผ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก ์ฌ์ฉํ๊ณ ์๋๋ฐ ๊ธฐ์กด์ ์ฐ๋ ํ ์ด๋ธ๋ณด๋ค ๋์ฑ ์์ ์ ์ด์ง๋ง ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ก์๋จน๋๋ค๋ ๋จ์ ์ด ์๋ค. mysql์ ๊ฒฝ์ฐ pk๋ฅผ ์ง์ ํ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด pk๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋๋๊ฐ? ์ด๊ฒฝ์ฐ ์๋์ผ๋ก mysql์ด auto_increment๋ก index๋ฅผ ์ง์ ํ๋๋ฐ ์ด auto_increment๋๋ ๊ฐ์ ์ฌ์ฉ์๋ ์ด์ฉ ํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฌ๋ง ํ๋ฉด pk๋ฅผ ์ง์ ํ๋ ๊ฒ์ด ์ข๋ค.
mysql์์ index๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
alter table member add index (`loginId`);
๋๋ create table์ ํ ๊ฒฝ์ฐ unique ์กฐ๊ฑด์ ๊ฑธ๋ฉด ์๋์ผ๋ก index์ ํฌํจ๋๋ค.
CREATE TABLE member (
name VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
);
์ฐธ๊ณ ์๋ฃ : [๋ฐ์ดํฐ๋ฒ ์ด์ค] ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค, ์ ๋ํฌ ์ธ๋ฑ์ค, ์ธ๋ ํค (tistory.com) ,