Day 25

์ธ๋ฑ์Šค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์˜ ํ•˜๋‚˜๋กœ, DDL์„ ์‚ฌ์šฉํ•ด์„œ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•œ๋‹ค

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

์ธ๋ฑ์Šค๋Š” CREATE INDEX ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ƒ์„ฑํ•œ๋‹ค ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์ด๋ฆ„์„ ๋ถ™ํ˜€ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ์˜ ์ฐจ์ด๋Š” ์กด์žฌํ•œ๋‹ค ์˜ค๋ผํด, DB2๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์Šคํ‚ค๋งˆ ๊ฐ์ฒด๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ‚ค๋งˆ ๋‚ด์— ์ด๋ฆ„์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ง€์ •ํ•ด์„œ ๊ด€๋ฆฌ MySQL, SQL Server ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ธ๋ฑ์Šค๊ฐ€ ํ…Œ์ด๋ธ” ๋‚ด์˜ ๊ฐ์ฒด๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ์ด๋ฆ„์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌ

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค๊ฐ€ ์–ด๋Š ํ…Œ์ด๋ธ”์˜ ์–ด๋Š ์—ด์— ๊ด€ํ•œ ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค

CRETAE INDEX ์ธ๋ฑ์Šค๋ช… ON ํ…Œ์ด๋ธ”๋ช… (์—ด1, ์—ด2, ... )

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์ €์žฅ์žฅ์น˜์— ์ƒ‰์ธ์šฉ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ธ๋ฑ์Šค ์ž‘์„ฑ์‹œ๊ฐ„๋„ ๋‹ฌ๋ผ์ง€๋Š”๋ฐ, ํ–‰์ด ๋Œ€๋Ÿ‰์œผ๋กœ ์กด์žฌํ•˜๋ฉด ์‹œ๊ฐ„๋„ ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ  ์ €์žฅ๊ณต๊ฐ„๋„ ๋งŽ์ด ์†Œ๋น„ํ•จ

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

์ธ๋ฑ์Šค ์‚ญ์ œ๋Š” DROP INDEX ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์‚ญ์ œํ•œ๋‹ค ํ…Œ์ด๋ธ” ์‚ญ์ œํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค์˜ ์ด๋ฆ„๋งŒ ๋„ฃ์–ด์คŒ์„ ํ†ตํ•ด์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ -> DROP INDEX ์ธ๋ฑ์Šค๋ช… ๋งŒ์•ฝ ํ…Œ์ด๋ธ” ๋‚ด ๊ฐ์ฒด๋กœ์จ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ์—๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„๋„ ํฌํ•จํ•ด์•ผํ•จ -> DROP INDEX ์ธ๋ฑ์Šค๋ช… ON ํ…Œ์ด๋ธ”๋ช…

์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์— ์˜์กดํ•˜๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— DROP TABLE๋กœ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋ฉด ํ…Œ์ด๋ธ”์— ์ž‘์„ฑ๋œ ์ธ๋ฑ์Šค๋„ ๊ฐ™์ด ์‚ญ์ œ๋œ๋‹ค

์ธ๋ฑ์Šค๋Š” SELECT์‹œ ํšจ์œจ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค ํ•˜์ง€๋งŒ INSERT ์‹œ์—๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ์†๋„๊ฐ€ ๋Š๋ ค์ง„๋‹ค ์˜ˆ์‹œ๋กœ ๋ณด์ž

CREATE INDEX IDX_SAMPLE65 ON sample62(a);

์š”๋ก  ์‹์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž select ์‹œ, where ์ ˆ์— a ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์กฐ๊ฑด์‹์„ ์ง€์ •ํ•œ ๊ฒฝ์šฐ์—๋Š” ์ธ๋ฑ์Šค๋กœ ์ธํ•ด์„œ ์†๋„๊ฐ€ ๋น ๋ฅผ ์˜ˆ์ •์ด๋‹ค select * from sample62 where a='z'; ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ์—๋Š” ์ •์ƒ์ ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ํƒˆ ์˜ˆ์ •์ด์ง€๋งŒ ๋งŒ์•ฝ ์กฐ๊ฑด์‹์—์„œ a ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด์„œ ์กฐ๊ฑด์„ ๋„ฃ์ง€ ์•Š์•˜๋‹ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ์•ˆ์“ด๋‹ค

EXPLAIN

์œ„์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•ด๋‘” ์—ด์„ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ๋ฑ์Šค๋ฅผ ํƒ„๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์‹ค์ œ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ด EXPLAIN ๋ช…๋ น์ด๋‹ค

EXPLAIN SQL ๋ช…๋ น

EXPLAIN ๋ช…๋ น์€ EXPLAIN ๋’ค์— ํ™•์ธํ•˜๊ณ  ์‹ถ์€ SELECT ๋ช…๋ น ๋“ฑ์˜ SQL์„ ์ง€์ •ํ•ด์ค€๋‹ค ๋’ค์—๋‹ค๊ฐ€ ์ฟผ๋ฆฌ๋ฌธ์„ ๋„ฃ๋Š”๋‹ค๊ณ  ํ•ด์„œ ์ง„์งœ ์ฟผ๋ฆฌ๋ฅผ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์–ด๋– ํ•œ ์ƒํƒœ๋กœ ์‹คํ–‰๋˜๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•ด์ค€๋‹ค EXPLAIN ๋ช…๋ น์€ ํ‘œ์ค€ SQL์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜์กด๋˜์–ด ์žˆ๋Š” ๋ช…๋ น์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด์ผ ํšŒ์‚ฌ๊ฐ€์„œ๋‚˜ ํ•ด๋ณด์ž

์ตœ์ ํ™”

์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด์„œ ํ›Œ๋ฅญํ•œ ์„ฑ๋Šฅ์„ ๋‚ด๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€์˜ ์ตœ์ ํ™”์— ์˜ํ•ด์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ถ€๋ถ„์ด๋‹ค ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ๋Š” select ๋ฌธ์ด ๋“ค์–ด์˜ค๋ฉด ์ผ๋‹จ ์‹คํ–‰๊ณ„ํš์„ ๋งŒ๋“ ๋‹ค ์‹คํ–‰๊ณ„ํš์ด๋ผ๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์ง€์ •๋œ ์ปฌ๋Ÿผ์ด where ์กฐ๊ฑด์— ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋‹ˆ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ž ์ด๋ ‡๊ฒŒ ํŒ๋‹จํ•˜๋Š” ๊ณผ์ •์ด๋‹ค ๊ทธ๋ฆฌ๊ณ  ์œ„์—์„œ ๋ดค๋˜ EXPLAIN ๋ช…๋ น์–ด๋Š” ์ด ์‹คํ–‰๊ณ„ํš์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์ด๋‹ค

์‹คํ–‰๊ณ„ํš์—์„œ๋Š” ์ธ๋ฑ์Šค์˜ ์กด์žฌ ์œ ๋ฌด, ์ธ๋ฑ์Šค์˜ ์‚ฌ์šฉ์—ฌ๋ถ€์— ๋Œ€ํ•ด์„œ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์ ํ™” ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ํŒ๋‹จ๋˜์–ด ์ƒ์„ฑ๋œ๋‹ค ํŒ๋‹จํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์ธ๋ฑ์Šค์˜ ํ’ˆ์งˆ๋„ ํ™•์ธํ•œ๋‹ค ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋ถˆ๋ฆฐ ๊ฐ’์€ 2๊ฐœ๋ฐ–์— ์—†๋Š”๋ฐ ์ด ๊ฐ’๋“ค์„ ์ด์ง„ํŠธ๋ฆฌ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ์˜คํžˆ๋ ค ์†ํ•ด์ด๋‹ค ์ด๋ ‡๊ฒŒ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๊ฐ€ ์ ์œผ๋ฉด ์ ์„ ์ˆ˜๋ก ์ธ๋ฑ์Šค์˜ ์„ฑ๋Šฅ์€ ๋–จ์–ด์ง„๋‹ค๋Š” ์  ๊ธฐ์–ตํ•˜์ž

Last updated

Was this helpful?