CS

[DB] Index

rkawk 2024. 3. 24. 16:56

 

์ธ๋ฑ์Šค

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ„์•ผ์— ์žˆ์–ด์„œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋™์ž‘์˜ ์†๋„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ.

๊ณ ์†์˜ ๊ฒ€์ƒ‰ ๋™์ž‘ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ ˆ์ฝ”๋“œ ์ ‘๊ทผ๊ณผ ๊ด€๋ จ ํšจ์œจ์ ์ธ ์ˆœ์„œ ๋งค๊น€ ๋™์ž‘์— ๋Œ€ํ•œ ๊ธฐ์ดˆ๋ฅผ ํ•œ๋‹ค.

RDBS์—์„œ๋Š” ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ํ•˜๋‚˜์˜ ์‚ฌ๋ณธ์ด๋‹ค.

 

๊ณ ์† ์ ‘๊ทผ, ์‹œ์Šคํ…œ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์ถ”๊ฐ€์ ์ธ ์ €์žฅ๊ณต๊ฐ„, ์ธ๋ฑ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ ์ž‘์—…์ด ์š”๊ตฌ๋œ๋‹ค.

 

External-memory model์„ ํ†ตํ•ด ์ธ๋ฑ์Šค์˜ ์„ฑ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ธ๋ฑ์Šค์˜ ๊ตฌ์„ฑ

Search Key 

file ์•ˆ์˜ record๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์š”์†Œ์˜ ์ง‘ํ•ฉ

 

Index File 

ํ˜•์‹์˜ Index entries๋กœ ๊ตฌ์„ฑ.

 


Ordered Index

Search Key์˜ ๊ฐ’์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋Š” ์ธ๋ฑ์Šค.

 

Primary Index ( clustering index)

ํŒŒ์ผ์˜ ํŠน์ •ํ•œ ์ˆœ์„œ๋ฅผ ๊ตฌ์ฒดํ™” ํ•˜๋Š” search key.

 

primary index๋กœ ์ˆœ์„œ๊ณผ ๊ตฌ์ฒดํ™” ๋œ ํŒŒ์ผ์„ Index-sequential file์ด๋ผ ํ•œ๋‹ค.

 

Secondary Index (non-clustering index)

primary index๋กœ ๊ตฌ์ฒดํ™”๋œ ์ˆœ์„œ์™€ ๋‹ค๋ฅธ ์ˆœ์„œ๋ฅผ ์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ธ๋ฑ์Šค.

 

 

Multilevel Index

๋งŒ์•ฝ primary index์— ๋Œ€ํ•œ ํŒŒ์ผ(dense index, sparse index)๊ฐ€ main memory์— ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๋ฉด Multilevel Index ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

primary index file์„ ๋””์Šคํฌ์— ์ €์žฅํ•˜๊ณ (Inner Index), ๊ทธ file์— ๋Œ€ํ•œ sparse index(Outer Index)๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์„œ ์‚ฌ์šฉํ•œ๋‹ค.

 


Hash Index

Key(Index record), Value(record Address)์˜ ํ˜•์‹์œผ๋กœ Hash Table ๊ธฐ๋ฐ˜์œผ๋กœ ์ €์žฅ๋œ Index.

 

 

- ๋™๋“ฑ ๋น„๊ต ๊ฒ€์ƒ‰์— ์ตœ์ ํ™”. ๋ฒ”์œ„๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ •๋ ฌ์„ ์œ„ํ•ด์„œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ.

 

- InnoDB์˜ ๋ฒ„ํผ ํ’€์—์„œ ๋น ๋ฅธ ๋ ˆ์ฝ”๋“œ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ Adaptive Hash Index๋กœ ์‚ฌ์šฉ, ๋ช‡๋ช‡ DBMS์—์„œ๋Š” JOIN์— ์‚ฌ์šฉ.

 

- ์ฃผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ

 

 


B+ tree Index

ํŒŒ์ผ์ด ์ปค์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ณ , ๋งŽ์€ Overflow block์ด ์ƒ๊ธฐ๋Š” index-sequential, hash index file ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” Index file data structure์ด๋‹ค.

 

์‹œ์ค‘ ๋Œ€๋ถ€๋ถ„์˜ RDBS๋Š” B+ tree๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์žˆ์œผ๋ฉฐ ๋ณ€ํ˜• ํ˜•ํƒœ์ธ B-tree, B-*tree ๋˜ํ•œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 

B+ tree๋Š” ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” Rooted-tree ํ˜•ํƒœ์ด๋‹ค.

  • root - leaf์˜ ๋ชจ๋“  ๊ฒฝ๋กœ๋Š” ๊ฐ™์€ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„๋‹ค.
  • root์™€ leaf๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ceil(n/2), n ์‚ฌ์ด์˜ ์ž์‹์„ ๊ฐ€์ง„๋‹ค.
  • leaf๋Š” ceil((n-1)/2), n-1 ์‚ฌ์ด์˜ ๊ฐ’๋“ค์„ ๊ฐ€์ง„๋‹ค.
  • root๊ฐ€ leaf๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ์ด๊ฒƒ์€ ์ ์–ด๋„ 2๋ช…์˜ ์ž์‹๋“ค์„ ๊ฐ€์ง„๋‹ค.

 

 

B+ tree Node

 

P : non-leaf node๋Š” ์ž์‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ, leaf node๋Š” record์˜ pointer ๋˜๋Š” bockets of records๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

K : search-key value๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ K1 < Kn-1์˜ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋‹ค.

 

Leaf Node

๊ฐ๊ฐ์˜ P๋Š” ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , Leaf node์˜ ๋งˆ์ง€๋ง‰ ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ leaf node๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

 

Non-leaf Node

๋ชจ๋“  Non-leaf nodes๋Š” leaf node์— ๋Œ€ํ•œ multi-level sparse index์ด๋‹ค.

Pi๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” leaf node๋Š” Ki๋ณด๋‹ค search key๊ฐ€ ํ•ญ์ƒ ์ž‘๋‹ค.

 

 

 

 

 

 

 

'CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[OS] CPU Scheduling  (1) 2024.09.29
[OS] Threads, Concurrency  (2) 2024.09.15
[OS] Processes  (0) 2024.09.14