Clustering index & Non Clustering index

greenTeaยท2023๋…„ 3์›” 31์ผ
0

๐ŸคฃClustering index & Non Clustering index

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

Clustering index์˜ ๊ฒฝ์šฐ pk๋ฅผ ํ‚ค๊ฐ’์˜ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์˜ฌ ์ˆ˜ ์žˆ๋”ฐ. ๊ทธ๋Ÿฌ๋‚˜ ๋‹จ์ ์œผ๋กœ๋Š” update, delete, insert์˜ ์ž‘์—…์ด ๋Š๋ฆฌ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 10๋งŒ๊ฐœ์ธ ๊ฒฝ์šฐ 1๋ฒˆ index๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด ํ‚ค ๊ฐ’์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ด๋™์‹œํ‚ค๊ณ  ์ด๋Š” ์„ฑ๋Šฅ์ €ํ•˜๋ฅผ ๋ถ€๋ฅธ๋‹ค. ๋˜ํ•œ (์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ) pk๋Š” ์‹ค์ œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ๊ณ  Non-Clustering-index์˜ ๊ฒฝ์šฐ Clustering์„ ํ‚ค๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— pk์˜ ๊ฐ’์ด ์ปค์ง€๋ฉด ๊ทธ๋งŒํผ ๋”๋งŽ์€ index์˜ ํฌ๊ธฐ ๋˜ํ•œ ๋Š˜์–ด๋‚˜๊ฒŒ ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ Clustering index๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ 8:2์ •๋„์˜ ๋น„์œจ์„ ์ง€๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐ŸคNon Clustering Index

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) ,

https://spiderwebcoding.tistory.com/6

profile
greenTea์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด