๐Ÿ’ป [SQL] 11. ์ธ๋ฑ์Šค(Index)

thisk336ยท2023๋…„ 10์›” 11์ผ
0

SQL

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

์ธ๋ฑ์Šค๋ž€?

  • ์ธ๋ฑ์Šค๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ„์•ผ์— ์žˆ์–ด์„œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋™์ž‘์˜ ์†๋„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค.
  • ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๋งŒ๋“œ๋Š๋ƒ์— ๋”ฐ๋ผ ๋ฐฉ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋‹ค.
  • ์ธ๋ฑ์Šค๋Š” ๊ทธ ํ˜•ํƒœ์— ๋”ฐ๋ผ ํด๋Ÿฌ์ŠคํŠธํ˜• ์ธ๋ฑ์Šค์™€ ๋ณด์กฐ ์ธ๋ฑ์Šค๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
    • ํด๋Ÿฌ์ŠคํŠธํ˜• ์ธ๋ฑ์Šค : ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์žฌ์ •๋ ฌํ•˜์—ฌ ๋””์Šคํฌ์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ PRIMARY KEY๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ํ•œ ํ…Œ์ด๋ธ”๋‹น ํ•˜๋‚˜์˜ ํด๋Ÿฌ์ŠฝํŠธํ˜• ์ธ๋ฑ์Šค๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
    • ๋ณด์กฐ ์ธ๋ฑ์Šค : ๋ฐ์ดํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋งŒ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ ์ธ๋ฑ์Šค๋ฅผ ๋งํ•˜๋ฉฐ, ๋ณด์กฐ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋””์Šคํฌ ๊ณต๊ฐ„์€ ๋ณดํ†ต ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋””์Šคํฌ ๊ณต๊ฐ„๋ณด๋‹ค ์ ๋‹ค.

์ธ๋ฑ์Šค ํ™•์ธํ•˜๊ธฐ

  • SHOW INDEX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
SHOW INDEX FROM [ํ…Œ์ด๋ธ” ๋ช…];

์ธ๋ฑ์Šค ์ƒ์„ฑํ•˜๊ธฐ

  • ์ผ๋ฐ˜์ ์œผ๋กœ CREATE๋ฌธ ์ด๋‚˜ ALTER๋ฌธ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ๋„ ์ธ๋ฑ์Šค๋ฅผ ํ•จ๊ป˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
-- CREATE ๋ฌธ์œผ๋กœ ์ธ๋ฑ์Šค ์ƒ์„ฑ
CREATE INDEX [์ธ๋ฑ์Šค๋ช…] ON [ํ…Œ์ด๋ธ”๋ช…] ([์ปฌ๋Ÿผ๋ช…]);

-- ALTER ๋ฌธ์œผ๋กœ ์ธ๋ฑ์Šค ์ƒ์„ฑ
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] ADD INDEX [์ธ๋ฑ์Šค๋ช…] ([์ปฌ๋Ÿผ๋ช…]);

-- ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ฉด์„œ ์ธ๋ฑ์Šค ์ƒ์„ฑ
CREATE TABLE [ํ…Œ์ด๋ธ”๋ช…] (
 [์ปฌ๋Ÿผ๋ช…1] CHAR(8) NOT NULL PRIMARY KEY,
 [์ปฌ๋Ÿผ๋ช…2] VARCHAR(10) UNIQUE NOT NULL,
UNIQUE INDEX [์ธ๋ฑ์Šค๋ช…1] ([์ปฌ๋Ÿผ๋ช…1]),
INDEX [์ธ๋ฑ์Šค๋ช…2] ([์ปฌ๋Ÿผ๋ช…2])
);

์ธ๋ฑ์Šค ์‚ญ์ œํ•˜๊ธฐ

  • ALTER ๋ฌธ์— DROP INDEX๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] DROP INDEX [์ธ๋ฑ์Šค๋ช…];

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