Index

์ธ๋ฑ์Šค์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • ์ธ๋ฑ์Šค(Index) ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œ์ผœ์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

  • ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•œ ํ›„ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ์ €์žฅ๋œ๋‹ค.

  • ์ปฌ๋Ÿผ์˜ ๊ฐ’๊ณผ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ (Key, Value) ์˜ ํ•œ ์Œ์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค

  • ์˜์–ด์‚ฌ์ „์ฒ˜๋Ÿผ ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ์ธ๋ฑ์Šค

  • ๊ธฐ๋ณธ ํ‚ค๋กœ ์ง€์ •ํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ํ•ด๋‹น ์—ด๋กœ ์ž๋™ ์ •๋ ฌ๋œ๋‹ค.

๋ณด์กฐ ์ธ๋ฑ์Šค

  • ์ผ๋ฐ˜ ์ฑ…์˜ ์ฐพ์•„๋ณด๊ธฐ์™€ ๊ฐ™์ด ๋ณ„๋„์˜ ๊ณต๊ฐ„์— ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

  • ๊ณ ์œ  ํ‚ค๋กœ ์ง€์ •ํ•˜๋ฉด ๋ณด์กฐ ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ž๋™ ์ •๋ ฌ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ณ ์œ  ์ธ๋ฑ์Šค

  • ๊ฐ’์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ธ๋ฑ์Šค

  • ๊ธฐ๋ณธ ํ‚ค๋‚˜ ๊ณ ์œ  ํ‚ค๋กœ ์ง€์ •ํ•˜๋ฉด ๊ฐ’์ด ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณ ์œ  ์ธ๋ฑ์Šค๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค
๋ณด์กฐ ์ธ๋ฑ์Šค

์˜๋ฌธ

Clustered Index

Secondary Index

๊ด€๋ จ ์ œ์•ฝ์กฐ๊ฑด

๊ธฐ๋ณธ ํ‚ค(Primary Key)

๊ณ ์œ  ํ‚ค(Unique)

ํ…Œ์ด๋ธ”๋‹น ๊ฐœ์ˆ˜

1๊ฐœ

์—ฌ๋Ÿฌ ๊ฐœ

์ •๋ ฌ

์ง€์ •ํ•œ ์—ด๋กœ ์ •๋ ฌ๋จ

์ •๋ ฌ๋˜์ง€ ์•Š์Œ

์ธ๋ฑ์Šค ์žฅ์ 

  • SELECT ๋ฌธ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ์†๋„๊ฐ€ ๋งค์šฐ ๋นจ๋ผ์ง„๋‹ค.

  • ์ปดํ“จํ„ฐ์˜ ๋ถ€๋‹ด์ด ์ค„์–ด๋“ค์–ด ๊ฒฐ๊ตญ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋œ๋‹ค.

์ธ๋ฑ์Šค ๋‹จ์ 

  • ์ธ๋ฑ์Šค๋„ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.

    • ๋Œ€๋žต ํ…Œ์ด๋ธ” ํฌ๊ธฐ์˜ 10% ์ •๋„

  • ์ฒ˜์Œ์— ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

  • SELECT๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ ์ž‘์—…(INSERT, UPDATE, DELETE)์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋ฉด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ๋‚˜๋น ์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ๊ฒฝ์šฐ

  • ๊ทœ๋ชจ๊ฐ€ ์ž‘์ง€ ์•Š์€ ํ…Œ์ด๋ธ”

  • INSERT, UPDATE, DELETE๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ(๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ)

  • JOIN์ด๋‚˜ WHERE ๋˜๋Š” ORDER BY์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ

  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต๋„๊ฐ€ ๋‚ฎ์€ ์ปฌ๋Ÿผ

์ธ๋ฑ์Šค๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

WHERE ์ ˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ด์— ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

  • SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ, WHERE ์ ˆ์˜ ์กฐ๊ฑด์— ํ•ด๋‹น ์—ด์ด ๋‚˜์™€์•ผ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • WHERE ์ ˆ ์กฐ๊ฑด์— ๋‚˜์˜ค๋Š” ์—ด ์™ธ์— ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‚ญ๋น„๊ฐ€ ๋œ๋‹ค.

WHERE ์ ˆ์— ์‚ฌ์šฉ๋˜๋”๋ผ๋„ ์ž์ฃผ ์‚ฌ์šฉํ•ด์•ผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค.

  • ์ธ๋ฑ์Šค๋Š” SELECT ๋ฌธ์˜ ์„ฑ๋Šฅ์€ ์ข‹์•„์ง€์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋Š” ์ž‘์—…์€ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ๋‚˜๋น ์งˆ ์ˆ˜ ์žˆ๋‹ค.

  • SELECT ๋ฌธ์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ฐจ๋ผ๋ฆฌ ํ•œ ๋ฒˆ ์กฐํšŒํ•  ๋•Œ ์ธ๋ฑ์Šค ์—†์ด ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋” ๋‚ซ๋‹ค.

๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์ด ๋†’์€ ์—ด์€ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด๋„ ๋ณ„ ํšจ๊ณผ๊ฐ€ ์—†๋‹ค.

  • ์—ด์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ์•ˆ ๋˜๋ฉด ์ธ๋ฑ์Šค๊ฐ€ ํฐ ํšจ๊ณผ๋ฅผ ๋‚ด์ง€ ๋ชปํ•œ๋‹ค.

  • ์„ฑ๋ณ„, ๊ตํ†ต ์ˆ˜๋‹จ ๋“ฑ ์ข…๋ฅ˜๊ฐ€ ์ œํ•œ๋œ ๊ฒƒ์—๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด๋„ ํšจ๊ณผ๊ฐ€ ์—†๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”๋‹น ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋ฅผ ์ฝ๋Š” ์ˆ˜๊ฐ€ ๋ณด์กฐ ์ธ๋ฑ์Šค๋ณด๋‹ค ์ ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๋” ์šฐ์ˆ˜ํ•˜๋‹ค.

  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•˜๋‚˜๋ฐ–์— ์ง€์ •ํ•˜์ง€ ๋ชปํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค(๊ธฐ๋ณธ ํ‚ค)๋Š” ์กฐํšŒํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์—ด์— ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋‹ค.

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ธ๋ฑ์Šค๋Š” ์ œ๊ฑฐํ•œ๋‹ค.

  • ์‚ฌ์šฉ๋˜๋Š” SQL์„ ๋ถ„์„ํ•ด์„œ WHERE ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์—ด์˜ ์ธ๋ฑ์Šค๋Š” ์ œ๊ฑฐํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

  • ๊ทธ๋Ÿฌ๋ฉด ๊ณต๊ฐ„์„ ํ™•๋ณดํ•  ๋ฟ ์•„๋‹ˆ๋ผ, ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์‹œ ๋ฐœ์ƒ๋˜๋Š” ๋ถ€ํ•˜๋„ ๋งŽ์ด ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”?

  • ์ธ๋ฑ์Šค๋Š” ์—ฌ๋Ÿฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋Œ€ํ‘œ์ ์œผ๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ B+Tree๊ฐ€ ์žˆ๋‹ค.

ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)

  • ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ (Key, Value)๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ํ•˜๋‚˜๋กœ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

  • Key๊ฐ’์„ ์ด์šฉํ•ด ๋Œ€์‘๋˜๋Š” Value ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ํ•ด์‹œ์ถฉ๋Œ์ด๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ํ‰๊ท ์ ์œผ๋กœ O(1)์˜ ๋งค์šฐ ๋น ๋ฅธ ์‹œ๊ฐ„๋งŒ์— ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ด๋‹ค.

  • ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•œ๋‹ค๋ฉด ์ธ๋ฑ์Šค๋Š” (key, value) = (์ปฌ๋Ÿผ์˜ ๊ฐ’, ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜)๋กœ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ, ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์‹ค์ œ๋กœ ์ธ๋ฑ์Šค์—์„œ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

  • ์™œ๋ƒํ•˜๋ฉด ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ๋“ฑํ˜ธ(=) ์—ฐ์‚ฐ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„  ๋ถ€๋“ฑํ˜ธ(< , >) ์—ฐ์‚ฐ์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋“ค์€ ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ํŠน์ • ๊ธฐ์ค€๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†๋‹ค.

B+ Tree

  • B+ Tree๋Š” DB์˜ ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•ด ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ ์ด์ƒ์ธ B-Tree๋ฅผ ๊ฐœ์„ ์‹œํ‚จ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์€ ๋ถ€๋“ฑํ˜ธ๋ฅผ ์ด์šฉํ•œ ์ˆœ์ฐจ ๊ฒ€์ƒ‰ ์—ฐ์‚ฐ์ด ์ž์ฃผ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋‹ค.

  • ๋•Œ๋ฌธ์— B-Tree์˜ ๋ฆฌํ”„๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ˆœ์ฐจ๊ฒ€์ƒ‰์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ๋“ฑ B-Tree๋ฅผ ์ธ๋ฑ์Šค์— ๋งž๊ฒŒ ์ตœ์ ํ™” ํ•˜์˜€๋‹ค.

์ฐธ๊ณ 

Last updated