Index

Index๋ž€

์ •์˜

  • ๋ฐ์ดํ„ฐ์˜ ์กฐํšŒ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

  • ํŠน์ • ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด ์ •๋ ฌ๋œ ์ˆœ์„œ๋กœ ์›๋ณธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ

    • ์™œ? ์ˆœ์„œ๊ฐ€ ์ •๋ ฌ๋˜์—ˆ์Œ์ด ๋ณด์žฅ๋  ๋•Œ, Binary Search์™€ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ!

Index์˜ ์ž๋ฃŒ๊ตฌ์กฐ

B+ Tree
  • ์ตœ๊ทผ์—๋Š” ๋Œ€๋ถ€๋ถ„ DB์—์„œ B+ Tree๋ฅผ ์ฑ„ํƒ

  • B+ Tree๋ž€, Leaf๊ฐ€ ์•„๋‹Œ Node๋“ค์€ ๋ชจ๋‘ ๊ฐ’์ด ์•„๋‹ˆ๋ผ left/right child ๋ถ„๊ธฐ์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ๋ฒ”์œ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค์ง Leaf๋งŒ์ด ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

  • log ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ

  • ๋˜ํ•œ, Leaf Node ๊ฐ„์— ์—ฐ๊ฒฐ์ด ์กด์žฌํ•ด ๋ฒ”์œ„ ๋‚ด ๋ฐ์ดํ„ฐ์˜ ์กฐํšŒ ์—ฐ์‚ฐ์— ํšจ์œจ์ 

์žฅ์ 

  • ์นด๋””๋„๋ฆฌํ‹ฐ(Cardinality)๊ฐ€ ๋†’์€ ์ปฌ๋Ÿผ์— ์ž˜ ์‚ฌ์šฉํ•˜๋ฉด ์กฐํšŒ ์†๋„๋ฅผ O(N)์—์„œ O(logN)๊นŒ์ง€ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Œ

    • ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์€, ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต๋„๊ฐ€ ๋‚ฎ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ

    • ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์œผ๋ฉด ๋ฒ”์œ„ ์—ฐ์‚ฐ์ด ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ

  • ์ •๋ ฌ(ORDER BY), ์กฐ๊ฑด๋ถ€(WHERE) ์—ฐ์‚ฐ ๋“ฑ์— ํšจ์œจ์ 

๋‹จ์ 

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œํ•  ๋•Œ๋งˆ๋‹ค ์ธ๋ฑ์Šค์— ์ด๋ฅผ ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ์—ฐ์‚ฐ ์‹œ๊ฐ„ ๋ฐ ์ €์žฅ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•จ

  • ์ฆ‰, ๊ณต๊ฐ„ ๋ณต์žก๋„ ๋ฉด์—์„œ๋Š” ๋น„ํšจ์œจ์ ์ด๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์†๋„๋Š” ์ €ํ•˜๋จ

๊ทธ๋Ÿผ ์–ธ์ œ ์‚ฌ์šฉ?

  • ๋ฐ์ดํ„ฐ์˜ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œ๋ณด๋‹ค ์กฐํšŒ ๋นˆ๋„๊ฐ€ ํ›จ์”ฌ ๋†’์€ ์ปฌ๋Ÿผ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ

  • ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๊ฐ€ Primary Key์ด๊ณ , ๋•Œ๋ฌธ์— PK์—๋Š” ์ž๋™์œผ๋กœ index๊ฐ€ ์ƒ์„ฑ๋จ

  • unique constraint๊ฐ€ ๋ถ€์—ฌ๋œ ์ปฌ๋Ÿผ๋„ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๊ฐ€์žฅ ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ index๊ฐ€ ์ƒ์„ฑ๋จ

์„ธ๋ถ€ ์‚ฌ์šฉ ์‚ฌ๋ก€

๋‹จ์ผ ์ธ๋ฑ์Šค์™€ ๋ณตํ•ฉ ์ธ๋ฑ์Šค

  • ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ผ๊ณ  ํ•จ

  • ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋ฉฐ ์ˆœ์„œ์— ๋”ฐ๋ผ B+ ํŠธ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ๋จ

  • ๊ฐ€์žฅ ์ฒ˜์Œ์— ๋ช…์‹œํ•œ ํŠธ๋ฆฌ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์ด ์กฐ๊ฑด์— ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

    • ๋ฐ˜๋Œ€๋กœ ๋งํ•˜์ž๋ฉด, ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์ด ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ ์ผ๋ถ€ ์ปฌ๋Ÿผ์ด ๋ˆ„๋ฝ๋˜์–ด๋„ 100% ํšจ์œจ์€ ์•„๋‹์ง€๋ผ๋„ ํ•ด๋‹น ๋ณตํ•ฉ ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜์–ด ๋” ํšจ์œจ์  ์กฐํšŒ๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ์Œ

  • ๋˜ํ•œ, ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ์—๋Š” ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์€(์ค‘๋ณต์ด ์ ์€) ์ปฌ๋Ÿผ๋ถ€ํ„ฐ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ 

์ธ๋ฑ์Šค ์กฐํšŒ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ

  • ๋ณตํ•ฉ ์ธ๋ฑ์Šค์—ฌ๋„ ์ฒซ ์ปฌ๋Ÿผ์ด between, like, <, >์™€ ๊ฐ™์€ ๋ฒ”์œ„ ์กฐํšŒ ์กฐ๊ฑด์˜ ๋Œ€์ƒ์ธ ๊ฒฝ์šฐ ์ดํ›„ ์ปฌ๋Ÿผ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

    • ์–ด์ฐจํ”ผ ์ฒซ ์ปฌ๋Ÿผ์˜ ๋ฒ”์œ„ ์กฐํšŒ๋กœ ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ •์ง€์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

  • =, in๊ณผ ๊ฐ™์ด ์ •ํ™•ํžˆ ๋งค์นญ๋˜๋Š” ์ปฌ๋Ÿผ์„ ์ฐพ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ฒซ ์ปฌ๋Ÿผ ์ดํ›„ ์ปฌ๋Ÿผ์˜ ์ธ๋ฑ์Šค๋„ ์‚ฌ์šฉ๋จ

  • ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ๋œ ์ปฌ๋Ÿผ๊ฐ’์„ ๋ณ€ํ˜•(ํ˜•๋ณ€ํ™˜, ์‚ฐ์ˆ  ์—ฐ์‚ฐ ๋“ฑ์„ ์ ์šฉ)ํ•˜๋Š” ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

  • null ๊ฐ’์€ is null ์กฐ๊ฑด์œผ๋กœ ์ธ๋ฑ์Šค ์Šค์บ”์ด ๊ฐ€๋Šฅ

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‹คํ–‰๊ณ„ํš์„ ์ง์ ‘ ํ™•์ธํ•ด๋ณด๋Š” ๊ฒƒ

  • explain์„ ํ†ตํ•ด ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ž‘์„ฑํ•œ ์‹คํ–‰ ๊ณ„ํš์„ ํ™•์ธํ•˜์—ฌ ์‹ค์ œ๋กœ ์˜๋„ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ๊ผญ ํ™•์ธํ•ด๋ด์•ผ ํ•จ

  • DBMS์— ๋”ฐ๋ผ, ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์‹คํ–‰๊ณ„ํš์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

์ฐธ๊ณ  ์ž๋ฃŒ

์ฐฝ์ฒœํ–ฅ๋กœ - ์ธ๋ฑ์Šค ์ •๋ฆฌ ๋ฐ ํŒ

Last updated