๐Ÿ’พ MySQL - Index

suRanยท2022๋…„ 7์›” 17์ผ
0

๐Ÿ’พ MySQL

๋ชฉ๋ก ๋ณด๊ธฐ
9/9
post-thumbnail

๋ณธ ํฌ์ŠคํŒ…์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฏธ๋‹ˆ ๋ฐ๋ธŒ ์ฝ”์Šค๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ
ํ•™์Šต์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค.

Index๋ž€?

์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์—์„œ ๊ฒ€์ƒ‰ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด MySQL์ด ๋ณ„๋„๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค.

MySQL ๋‚ด๋ถ€์—์„œ ์ปฌ๋Ÿผ์„ ์‚ฌ์šฉํ•œ ๊ฒ€์ƒ‰์ด๋‚˜ JOIN์‹œ, ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ์ด pk๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์งˆ์˜์˜ ์ˆ˜ํ–‰์†๋„๊ฐ€ ๋Šฆ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ์— Index๋ฅผ ๊ฑธ์–ด์ค€๋‹ค๋ฉด
๋งˆ์น˜ ์ฑ…์— ์žˆ๋Š” ์ƒ‰์ธ์œผ๋กœ ์–ด๋–ค ๋‚ด์šฉ์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ
๊ฒ€์ƒ‰ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ์˜ ์ „์ฒด์ ์ธ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.

์ธ๋ฑ์Šค๋Š” ์ปฌ๋Ÿผ๋ณ„๋กœ ๋งŒ๋“ค์–ด์ง€๋ฉฐ,
PK๋‚˜ FK๋กœ ์ง€์ •๋œ ์ปฌ๋Ÿผ์€ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ง„๋‹ค.

๋‹จ, Index๋Š”
SELECT, DELECT, JOIN์˜ ์ˆ˜ํ–‰ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜์ง€๋งŒ
๋ ˆ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜๋Š” ์“ฐ๊ธฐ ์ž‘์—…์ธ INSERT, UPDATE์˜ ๊ฒฝ์šฐ์—๋Š” ์˜คํžˆ๋ ค ์†๋„๋ฅผ ๋Šฆ์ถ˜๋‹ค. ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ธ๋ฑ์Šค๊ฐ€ ๋‹ค์‹œ ๋ณ€๊ฒฝ๋˜์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋” ๋Š๋ ค์ง€๋Š” ๊ฒƒ์ด๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ๊ณผ๋„ํ•œ ์ธ๋ฑ์Šค์˜ ์‚ฌ์šฉ์€ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๋ถ™์ผ ๋•Œ๋งˆ๋‹ค MySQL์€ B+ํŠธ๋ฆฌ๋ผ๋Š” ๋ณ„๋„์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด ๋กœ๋”ฉํ•œ๋‹ค.
๊ทธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์˜คํžˆ๋ ค ์ฟผ๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ณ , ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์žก์•„๋จน๊ธฐ ๋•Œ๋ฌธ์— DB์˜ ์ „์ฒด์ ์ธ ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค๋Š” ์ •๋ง ํ•„์š”ํ•œ ํ…Œ์ด๋ธ”์—๋งŒ ์„ ๋ณ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.



๐Ÿ’ฟ ๋ฌธ๋ฒ•

1. ์ธ๋ฑ์Šค ์ƒ์„ฑ

-- ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ ์ธ๋ฑ์Šค ์ƒ์„ฑ
CREATE TABLE ํ…Œ์ด๋ธ” ์ด๋ฆ„ (
	์ปฌ๋Ÿผ1 INT NOT NULL,
    ์ปฌ๋Ÿผ2 VARCHAR(20),
    PRIMARY KEY (์ปฌ๋Ÿผ1),
    INDEX indexName(์ปฌ๋Ÿผ2)
);
-- ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ดํ›„ ์ธ๋ฑ์Šค ์ถ”๊ฐ€
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD INDEX(์ปฌ๋Ÿผ๋ช…);

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD UNIQUE(์ปฌ๋Ÿผ๋ช…); -- ์œ ๋‹ˆํฌํ•œ ์ธ๋ฑ์Šค ์‚ฌ์šฉ

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD FULLTEXT(์ปฌ๋Ÿผ๋ช…); -- ์ปฌ๋Ÿผ์—์„œ์˜ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ๋งŽ์€ ๊ฒฝ์šฐ. MySQL์—์„œ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 



2. ์ธ๋ฑ์Šค ์‚ญ์ œ

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… DROP INDEX (์ปฌ๋Ÿผ๋ช…); -- ์ธ๋ฑ์Šค ์‚ญ์ œ


profile
๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ํ•ด๋ผ

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