Computer Science/๐Ÿ’พ Database

[DB] ์ธ๋ฑ์Šค(Index) ๊ฐœ๋…, ์žฅ๋‹จ์ , ์ „๋žต, ๊ตฌ์กฐ

J1Yun 2023. 3. 20. 16:33
728x90

์ธ๋ฑ์Šค(Index)

  • ์ฑ…์˜ '์ƒ‰์ธ'๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ
  • ํŠน์ • ์นผ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ํ•ด๋‹น ์นผ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•˜์—ฌ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ์ €์žฅ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ์ธ๋ฑ์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด์„œ ๊ฒ€์ƒ‰ ์†๋„ ํ–ฅ์ƒ
  • ์ธ๋ฑ์Šค ์ƒ์„ฑ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ

์žฅ์ 

  • ๊ฒ€์ƒ‰ ์กฐ๊ฑด WHERE ์ ˆ์—์„œ์˜ ํšจ์œจ์„ฑ
    • ์ธ๋ฑ์Šค๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋’ค์ฃฝ๋ฐ•์ฃฝ ์„ž์—ฌ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ค‘ ๊ฒ€์ƒ‰์„ ํ•˜๋ ค๋ฉด ํ’€ ์Šค์บ”(Full Scan)์„ ํ•ด์•ผํ•จ
    • ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋“ค์ด ์ •๋ ฌ๋˜์–ด ์ €์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด(WHERE์ ˆ)์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ
  • ์ •๋ ฌ ORDER BY ์ ˆ์—์„œ์˜ ํšจ์œจ์„ฑ
    • ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ORDER BY์— ์˜ํ•œ ์ •๋ ฌ ๊ณผ์ •์„ ํ”ผํ•  ์ˆ˜ ์žˆ์–ด ์‹œ์Šคํ…œ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  • MIN๊ณผ MAX์˜ ์ฒ˜๋ฆฌ ํšจ์œจ์„ฑ
    • ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— MIN๊ฐ’๊ณผ MAX๊ฐ’์€ ๊ฐ๊ฐ ์‹œ์ž‘ ๊ฐ’๊ณผ ๋ ๊ฐ’์„ ์˜๋ฏธํ•˜์—ฌ ํ’€ ์Šค์บ”(Full Scan)์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘

๋‹จ์ 

  • ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š”
    • ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์•ฝ 10%์— ํ•ด๋‹นํ•˜๋Š” ์ €์žฅ ๊ณต๊ฐ„์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•จ
  • DML(INSERT, UPDATE, DELETE) ๋ช…๋ น์— ์ทจ์•ฝ
    • INSERT, UPDATE, DELETE ๋“ฑ DML ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ” ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•จ
    • ์›๋ณธ ํ…Œ์ด๋ธ” ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ” ๋˜ํ•œ ์‚ฝ์ž…/์ˆ˜์ •/์‚ญ์ œ๋ฅผ ๋ฐ˜์˜ํ•ด์•ผํ•˜๋ฏ€๋กœ DML์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋ฉด ๋ถ€ํ•˜ ๋ฐœ์ƒ
  • ์ž˜๋ชป ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ ์ €ํ•˜
    • ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘์—์„œ 10~15% ์ดํ•˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ์ฆ‰, ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์—๋งŒ ํšจ๊ณผ์ 
    • ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์„ ๋•Œ๋Š” ์ธ๋ฑ์Šค๊ฐ€ ๊ดœํžˆ ์ €์žฅ ๊ณต๊ฐ„๋งŒ ์ฐจ์ง€ํ•  ๋ฟ ํ’€ ์Šค์บ”์ด ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋™์ž‘

 

 

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

  • ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…/์ˆ˜์ •/์‚ญ์ œ ์ž‘์—…์ด ๋งŽ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰ ์ž‘์—…์ด ๋นˆ๋ฒˆํžˆ ์ผ์–ด๋‚˜๋Š” ํ…Œ์ด๋ธ”
  1. ์กฐ๊ฑด ์ ˆ์— ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ์นผ๋Ÿผ
  2. ์กฐ๊ฑด ์ ˆ์—์„œ=(๊ฐ™์Œ) ์—ฐ์‚ฐ์ž๋กœ ๋น„๊ต๋˜๋Š” ์นผ๋Ÿผ
  3. ORDER BY ์ ˆ์—์„œ ์ •๋ ฌ์˜ ๊ธฐ์ค€์œผ๋กœ ์“ฐ์ด๋Š” ์นผ๋Ÿผ
  4. ์ค‘๋ณต ๋ฐ์ดํ„ฐ ๋ฐœ์ƒ ํ™•๋ฅ ์ด ์ตœ์†Œ์ธ ์นผ๋Ÿผ
  5. JOIN ์กฐ๊ฑด์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์นผ๋Ÿผ

 

 

์ธ๋ฑ์Šค ๊ตฌ์กฐ

1. B-Tree ์ธ๋ฑ์Šค

  • ํƒ์ƒ‰ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ท ํ˜• ์žˆ๊ฒŒ ๋†’์ด๋ฅผ ์œ ์ง€ํ•˜๋Š” Balanced Tree์˜ ์ผ์ข…
  • ๋ชจ๋“  ๋ฆฌํ”„ ๋…ธ๋“œ๋“ค์€ ๊ฐ™์€ ๋ ˆ๋ฒจ์— ์žˆ์–ด์•ผ ํ•จ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ๋œ ์ˆœ์„œ๋กœ ์ €์žฅํ•˜๋ฉฐ ๋…ธ๋“œ์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•ด ๊ฒ€์ƒ‰๊ณผ ์‚ฝ์ž…, ์‚ญ์ œ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • ๋…ธ๋“œ๋Š” ํ‚ค์™€ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ ๊ฐ ๋…ธ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚ค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

2. B+Tree ์ธ๋ฑ์Šค

  • B-Tree์˜ ๋ณ€ํ˜•์œผ๋กœ B-Tree๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์€ ํšจ์œจ์ ์ด์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ˆœํšŒ ์‹œ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์  ๊ฐœ์„ 
  • ๋ฆฌํ”„ ๋…ธ๋“œ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๋‹ค๋ฅธ ๋…ธ๋“œ์—์„œ๋Š” ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋งŒ ์ €์žฅ
  • ๋ฆฌํ”„ ๋…ธ๋“œ๋ผ๋ฆฌ๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)๋กœ ์—ฐ๊ฒฐ
  • ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ํ™•๋ณดํ•˜์—ฌ ๋” ๋งŽ์€ ํฌ์ธํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์–ด ๊ฒ€์ƒ‰ ์†๋„ ํ–ฅ์ƒ
  • ํ’€ ์Šค์บ”์„ ํ•˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ฆฌํ”„ ๋…ธ๋“œ๋งŒ ์ˆœํšŒํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ 
  • ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ ๋ถ€๋“ฑํ˜ธ๋ฅผ ์ด์šฉํ•œ ์ˆœ์ฐจ ๊ฒ€์ƒ‰ ์—ฐ์‚ฐ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ B+Tree๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉ

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

  • key์™€ value๋ฅผ ํ•œ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ๊ฐ’์ด ์กฐ๊ธˆ์ด๋ผ๋„ ๋‹ฌ๋ผ์ง€๋ฉด ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ•ด์‹œ ๊ฐ’์„ ์ƒ์„ฑํ•ด ๋“ฑํ˜ธ(=) ์—ฐ์‚ฐ์„ ์ด์šฉํ•œ ๊ฒ€์ƒ‰์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์Œ
  • ๋ถ€๋“ฑํ˜ธ(<, >) ์—ฐ์‚ฐ์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ฒ€์ƒ‰์„ ์œ„ํ•ด์„œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ

 

 

โญ๏ธ ์ฐธ๊ณ 

728x90