Skip to content

Latest commit

ย 

History

History
128 lines (68 loc) ยท 3.81 KB

File metadata and controls

128 lines (68 loc) ยท 3.81 KB

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


๋ชฉ์ 

์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ ๊ณต๊ฐ„์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์„ ์ƒ‰์ธํ™”ํ•œ๋‹ค.

๋งˆ์น˜, ๋‘๊บผ์šด ์ฑ…์˜ ๋ชฉ์ฐจ์™€ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ’€์Šค์บ”ํ•˜์ง€ ์•Š๊ณ , B+ Tree๋กœ ๊ตฌ์„ฑ๋œ ๊ตฌ์กฐ์—์„œ Index ํŒŒ์ผ ๊ฒ€์ƒ‰์œผ๋กœ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์ด๋‹ค.



ํŒŒ์ผ ๊ตฌ์„ฑ

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ, 3๊ฐ€์ง€ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

  • FRM : ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ €์žฅ ํŒŒ์ผ
  • MYD : ์‹ค์ œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ
  • MYI : Index ์ •๋ณด ํŒŒ์ผ (Index ์‚ฌ์šฉ ์‹œ ์ƒ์„ฑ)

์‚ฌ์šฉ์ž๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด Index๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์นผ๋Ÿผ์„ ๊ฒ€์ƒ‰ํ•˜๊ฒŒ ๋˜๋ฉด, ์ด๋•Œ MYI ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™œ์šฉํ•œ๋‹ค.


๋‹จ์ 

  • Index ์ƒ์„ฑ์‹œ, .mdb ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.
  • ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋™์‹œ์— ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ‘ํ–‰์„ฑ์ด ์ค„์–ด๋“ ๋‹ค.
  • ์ธ๋ฑ์Šค ๋œ Field์—์„œ Data๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜, Record๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ์‹œ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ž‘์—…์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ, Index๋ฅผ ์žฌ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

์ƒํ™ฉ ๋ถ„์„

  • ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ๊ฒฝ์šฐ

    (1) Where ์ ˆ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” Column

    (2) ์™ธ๋ž˜ํ‚ค๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” Column

    (3) Join์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” Column


  • Index ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

    (1) Data ์ค‘๋ณต๋„๊ฐ€ ๋†’์€ Column

    (2) DML์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” Column


DML์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ์˜ ์ƒํ™ฉ

  • INSERT

    ๊ธฐ์กด Block์— ์—ฌ์œ ๊ฐ€ ์—†์„ ๋•Œ, ์ƒˆ๋กœ์šด Data๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.

    โ†’ ์ƒˆ๋กœ์šด Block์„ ํ• ๋‹น ๋ฐ›์€ ํ›„, Key๋ฅผ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

    โ†’ Index split ์ž‘์—… ๋™์•ˆ, ํ•ด๋‹น Block์˜ Key ๊ฐ’์— ๋Œ€ํ•ด์„œ DML์ด ๋ธ”๋กœํ‚น ๋œ๋‹ค. (๋Œ€๊ธฐ ์ด๋ฒคํŠธ ๋ฐœ์ƒ)

    โ†’ ์ด๋•Œ Block์˜ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. (์ธ๋ฑ์Šค ์กฐ๊ฐํ™”)

  • DELETE

    <Table๊ณผ Index ์ƒํ™ฉ ๋น„๊ต>

    Table์—์„œ data๊ฐ€ delete ๋˜๋Š” ๊ฒฝ์šฐ : Data๊ฐ€ ์ง€์›Œ์ง€๊ณ , ๋‹ค๋ฅธ Data๊ฐ€ ๊ทธ ๊ณต๊ฐ„์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

    Index์—์„œ Data๊ฐ€ delete ๋˜๋Š” ๊ฒฝ์šฐ : Data๊ฐ€ ์ง€์›Œ์ง€์ง€ ์•Š๊ณ , ์‚ฌ์šฉ ์•ˆ ๋จ ํ‘œ์‹œ๋งŒ ํ•ด๋‘”๋‹ค.

    โ†’ Table์˜ Data ์ˆ˜์™€ Index์˜ Data ์ˆ˜๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ

  • UPDATE

    Table์—์„œ update๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด โ†’ Index๋Š” Update ํ•  ์ˆ˜ ์—†๋‹ค.

    Index์—์„œ๋Š” Delete๊ฐ€ ๋ฐœ์ƒํ•œ ํ›„, ์ƒˆ๋กœ์šด ์ž‘์—…์˜ Insert ์ž‘์—… / 2๋ฐฐ์˜ ์ž‘์—…์ด ์†Œ์š”๋˜์–ด ํž˜๋“ค๋‹ค.



์ธ๋ฑ์Šค ๊ด€๋ฆฌ ๋ฐฉ์‹

  • B-Tree ์ž๋ฃŒ๊ตฌ์กฐ

    ์ด์ง„ ํƒ์ƒ‰ํŠธ๋ฆฌ์™€ ์œ ์‚ฌํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

    ์ž์‹ ๋…ธ๋“œ๋ฅผ ๋‘˜์ด์ƒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  Balanced Tree ๋ผ๋Š” ํŠน์ง•์ด ์žˆ๋‹ค โ†’ ์ฆ‰ ํƒ์ƒ‰ ์—ฐ์‚ฐ์— ์žˆ์–ด O(log N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.

    ๋ชจ๋“  ๋…ธ๋“œ๋“ค์— ๋Œ€ํ•ด ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํฌ์ธํ„ฐ ์—ญํ• ์„ ๋™๋ฐ˜ํ•œ๋‹ค.

  • B+Tree ์ž๋ฃŒ๊ตฌ์กฐ

    B-Tree๋ฅผ ๊ฐœ์„ ํ•œ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ

    ๊ฐ’์„ ๋ฆฌํ”„๋…ธ๋“œ์—๋งŒ ์ €์žฅํ•˜๋ฉฐ ๋ฆฌํ”„๋…ธ๋“œ๋“ค ๋ผ๋ฆฌ๋Š” ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค โ†’ ๋•Œ๋ฌธ์— ๋ถ€๋“ฑํ˜ธ๋ฌธ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ํšจ๊ณผ์ ์ด๋‹ค.

    ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋…ธ๋“œ๋“ค์€ ํฌ์ธํ„ฐ์˜ ์—ญํ• ๋งŒ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  • HashTable ์ž๋ฃŒ๊ตฌ์กฐ

    ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ์ธ๋ฑ์Šค๋กœ ๋ณ€๊ฒฝ ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

    ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.

    ๋‹ค๋ฅธ ๊ด€๋ฆฌ ๋ฐฉ์‹์— ๋น„ํ•ด ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค.

    ์ตœ์•…์˜ ๊ฒฝ์šฐ ํ•ด์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํƒ์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.

    ๊ฐ’ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋“ฑํ˜ธ๋ฌธ, ํฌํ•จ๋ฌธ๋“ฑ์˜ ์—ฐ์‚ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

[์ฐธ๊ณ ์‚ฌํ•ญ]