index

  • ์ธ๋ฑ์Šค

    ๊ฐœ์š”

    • DBMS๋Š” ๋‚ด๊ฐ€ ๋งŒ๋“  table์„ ์ €์žฅ์žฅ์น˜์— ์ €์žฅํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰, ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

    • DBMS๋Š” ์–ด๋–ป๊ฒŒ DB๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ• ๊นŒ?

    • B-tree: DBMS์—์„œ ํ…Œ์ด๋ธ”์ด ์ €์žฅ๋˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ์™€ ํ•จ๊ป˜, ๋Œ€๋ถ€๋ถ„์˜ RDBMS๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ.

    • MySQL์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธ๋ฑ์Šค ์ข…๋ฅ˜ ์ผ๋ถ€๋ฅผ ํ™•์ธํ•ด๋ณด์ž.

DB์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ

  • DBMS๋Š” ์šด์˜์ฒด์ œ ์œ„์—์„œ ์‹คํ–‰๋˜๋Š” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์ผ์ข…

  • SQL Tool (SQL Shell or WorkBench)์„ ํ†ตํ•ด์„œ SQL๋ฌธ์„ ์ž‘์„ฑํ•˜๋ฉด

  • DBMS์— ์˜ํ•ด ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ๊ฒฐ์ •์ด ๋˜๊ณ , OS๋ฅผ ํ†ตํ•ด ๊ฐ ์žฅ์น˜์— ๋ช…๋ น์ด ๋‚ด๋ ค์ ธ์„œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

  • ์šด์˜์ฒด์ œ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ข…์†์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ๋กœ ์ €์žฅ๋œ๋‹ค. (OS file system ์ฐธ์กฐ)

  • ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์œ„์น˜๋Š” ๋ณด์กฐ ๊ธฐ์–ต ์žฅ์น˜ (ํ•˜๋“œ๋””์Šคํฌ(ๅคš), SSD, USB๋“ฑ๋“ฑ)

    • ํ•˜๋“œ๋””์Šคํฌ

      • ์›ํ˜• ํ”Œ๋ ˆ์ดํŠธ๋กœ ๊ตฌ์„ฑ๋จ.

      • ํ”Œ๋ ˆ์ดํŠธ๋Š”/ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํŠธ๋ž™์œผ๋กœ ๋‚˜๋‰˜๋ฉฐ / ํŠธ๋ž™์€ ๋‹ค์‹œ ๋ช‡๊ฐœ์˜ ์„นํ„ฐ๋กœ ๋‚˜๋‰จ

      • ํšŒ์ „ํ•˜๋Š” ํ”Œ๋ ˆ์ดํŠธ๋ฅผ ํ•˜๋“œ๋””์Šคํฌ์˜ Actuaor Arm๊ณผ ํ—ค๋”๊ฐ€ ์ ‘๊ทผํ•˜์—ฌ ์›ํ•˜๋Š” ์„นํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

      • ํ•˜๋“œ๋””์Šคํฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์— ์˜ํ–ฅ๋ฐ›๋Š” 3๊ฐ€์ง€.

        • ๋ชจํ„ฐ์—์˜ํ•ด ๋ถ„๋‹น ํšŒ์ „ํ•˜๋Š” ์†๋„(RPM)

        • ๋ฐ์ดํ„ฐ ์ฝ์„ ๋•Œ, ์—‘์„ธ์Šค ์•”์ด ์ด๋™ํ•˜๋Š” ์‹œ๊ฐ„ (latency time)

        • ์ฃผ ๊ธฐ์–ต์žฅ์น˜๋กœ ์ฝ์–ด์˜ค๋Š” ์‹œ๊ฐ„(transfer time)

      • ์œ„์™€ ๊ฐ™์€ ๋””์Šคํฌ ์ž…์ถœ๋ ฅ์‹œ๊ฐ„์„ ์—‘์„ธ์Šค ์‹œ๊ฐ„์ด๋ผ๊ณ  ํ•œ๋‹ค. ์—‘์„ธ์Šค ์‹œ๊ฐ„์€ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์ฝ๊ธฐ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค.

        • access time = seek time + rotational latency time + data transfer time

          • seek time : ํƒ์ƒ‰์‹œ๊ฐ„, ์—‘์„ธ์Šค ํ—ค๋“œ๋ฅผ ํŠธ๋ž™์— ์ด๋™์‹œํ‚ค๋Š” ์‹œ๊ฐ„

          • rotational latency time: ํšŒ์ „์ง€์—ฐ์‹œ๊ฐ„, ์„นํ„ฐ๊ฐ€ ์—‘์„ธ์Šค ํ—ค๋“œ์— ์ ‘๊ทผํ•˜๋Š”์‹œ๊ฐ„

          • data transfer time: ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ ๊ธฐ์–ต์žฅ์น˜๋กœ ์ฝ์–ด์˜ค๋Š” ์‹œ๊ฐ„

  • DBMS๊ฐ€ ํ•˜๋“œ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฝ์–ด์˜ฌ ๋•Œ์—๋Š” ๊ทผ๋ณธ์ ์ธ ์†๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋Ÿฐ ์†๋„ ๋ฌธ์ œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด, ์ฃผ๊ธฐ์–ต์žฅ์น˜์— DBMS๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์ค‘ ์ผ๋ถ€๋ฅผ buffer pool๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , LRU์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‚ฌ์šฉ๋นˆ๋„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ ์œ„์ฃผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์‹œ, ๋ฒ„ํผํ’€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ์„  ์ฝ์–ด๋“ค์—ฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค.

  • DBMS๋Š” DB ๋ณ„๋กœ 1๊ฐœ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. ํ…Œ์ด๋ธ”์€ ์ƒ์„ฑ์‹œ ์ •์˜๋œ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค. ์ด๋Ÿฐ ํŒŒ์ผ๋“ค์€ DBMS ๋ณ„๋กœ ๊ณ ์œ ํ•œ ํŒŒ์ผ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ๋™์‹œ์— ์ˆ˜๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํŠน๋ณ„ํ•œ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.

  • MySQL์˜ ์ €์žฅ์žฅ์น˜ ์—”์ง„์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์œผ๋กœ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๊ณ , InnoDB ์—”์ง„์ด ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜์–ด์žˆ๋‹ค. MySQL์˜ InnoDB๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐํŒŒ์ผ, ํผํŒŒ์ผ๋“ฑ์„ ์ €์žฅํ•œ๋‹ค. ์ƒ์„ฑํ•œ DB ๋ณ„๋กœ ๊ด€๋ฆฌ.

์ธ๋ฑ์Šค์™€ B-tree

  • ์ธ๋ฑ์Šค (์ƒ‰์ธ)

    • ์ž๋ฃŒ๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ์„์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ.

    • ์ผ๋ฐ˜์ ์ธ RDBMS์˜ ์ธ๋ฑ์Šค๋Š” ๋Œ€๋ถ€๋ถ„ B-tree ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๋‹ค.

  • B-tree

    • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ.

    • ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

    • ์ด์ง„ ํŠธ๋ฆฌ: ์ž์‹๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ, B-tree ๋Š” ์ž์‹ ๋…ธ๋“œ ๊ฐฏ์ˆ˜๊ฐ€ 2๊ฐœ ์ด์ƒ์ธ ํŠธ๋ฆฌ.

    • ๋ฃจํŠธ๋…ธ๋“œ, ๋‚ด๋ถ€๋…ธ๋“œ, ๋ฆฌํ”„๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ.

    • ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜๋“œ์‹œ ์ •๋ ฌ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•œ๋‹ค.

    • Leaf ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™์•„์•ผํ•œ๋‹ค. ์ฆ‰, ๋ชจ๋‘ ๊ฐ™์€ ๋ ˆ๋ฒจ์— ์กด์žฌํ•ด์•ผํ•œ๋‹ค.

      (๊ท ํ˜• ํŠธ๋ฆฌ)

    • ๊ฐ ๋…ธ๋“œ๋Š” ํ‚ค๊ฐ’๊ณผ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ํ‚ค๊ฐ’์€ ์˜ค๋ฆ„์ฐจ ์ •๋ ฌ ๋˜์–ด์žˆ์Œ. ํ‚ค์˜ ์ขŒ์šฐ์— ์žˆ๋Š” ํฌ์ธํ„ฐ๋Š” ๊ฐ๊ฐ ํ‚ค ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’๊ณผ ํฐ ๊ฐ’์„ ๊ฐ€์ง„ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ด.

    • ์ž…๋ ฅ ์ž๋ฃŒ๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์—†์Œ.

    • ํƒ์ƒ‰:

      • ์ด์ง„ํŠธ๋ฆฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž‘์€ ๊ฐ’์€ ์™ผ์ชฝ, ํฐ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์— ์ด๋ค„์ ธ์žˆ์Œ.

      • ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ์ค‘๊ฐ„๋‹จ๊ณ„์ธ ๋‚ด๋ถ€๋…ธ๋“œ์—์„œ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ์ฐพ๊ณ , ์ตœ์ข… ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์ธ ๋ฆฌํ”„๋…ธ๋“œ์— ๋„๋‹ฌ. ๋ฆฌํ”„ ๋…ธ๋“œ์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜์— ๋Œ€์‘ํ•˜๋Š” rowid(RID, Row IDentify, ํ…Œ์ด๋ธ” ํ–‰์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ์  ์œ„์น˜)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ํ–‰์„ ๋ฐ”๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

    • ์‚ฝ์ž…, ์‚ญ์ œ ๋“ฑ ๊ฐฑ์‹ ์‹œ: ์ฐจ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ„. ๋™์ ์œผ๋กœ ๋…ธ๋“œ๋ฅผ ๋ถ„ํ• ํ•˜๊ฑฐ๋‚˜ ํ†ตํ•ฉํ•˜๋ฉด์„œ ๊ท ํ˜• ์œ ์ง€

  • ์ธ๋ฑ์Šค ํŠน์ง•

    • ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์—์„œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ์†์„ฑ(col)์„ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ•จ.

    • ๋น ๋ฅธ ๊ฒ€์ƒ‰๊ณผ ํ•จ๊ป˜ ํšจ์œจ์ ์ธ ๋ ˆ์ฝ”๋“œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ.

    • ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋œ ์†์„ฑ๊ณผ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋งŒ ๋ณด์œ ํ•˜๋ฏ€๋กœ ํ…Œ์ด๋ธ”๋ณด๋‹ค ์ž‘์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•จ.

    • ์ €์žฅ๋œ ๊ฐ’๋“ค์€ ํ…Œ์ด๋ธ”์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด ๋จ.

    • ์ผ๋ฐ˜์ ์œผ๋กœ B-tree ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง

    • ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ธ๋ฑ์Šค์˜ ์žฌ๊ตฌ์„ฑ์ด ํ•„์š”ํ•จ.

    • 100๋งŒ๊ฐœ์˜ ํŠœํ”Œ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋„ 3-4๋ฒˆ์˜ ๋””์Šคํฌ ๋ธ”๋ก์„ ์ฝ์œผ๋ฉด ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

    • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ, ์‚ฝ์ž…์ด ๋งŽ์„ ๊ฒฝ์šฐ ๋ชจ์–‘ ์œ ์ง€๋ฅผ ์œ„ํ•ด ๋ถ„ํ•  ๋ฐ ์ด๋™์ด ์žฆ๋‹ค.

  • MySQL ์ธ๋ฑ์Šค

    • ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค(Clustered Index) & ๋ณด์กฐ ์ธ๋ฑ์Šค (Secondary Index)

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

      • ์—ฐ์†๋˜๋‹ˆ ํ‚ค๊ฐ’์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด์„œ ๊ฐ™์€ ๋ธ”๋ก์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

      • ํ…Œ์ด๋ธ”๋‹น ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ ๊ฐ€๋Šฅ

      • B-tree ์ธ๋ฑ์Šค ๋ฆฌํ”„ ๋…ธ๋“œ์—์„œ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ ๋Œ€์‹ , ํ…Œ์ด๋ธ”์˜ ์—ด ์ž์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ํ˜•ํƒœ

      • ๋ฆฌํ”„ ๋…ธ๋“œ๋“ค์ด ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์ €์žฅ๋œ ํ…Œ์ด๋ธ” ์ž์ฒด๊ฐ€ ๋œ๋‹ค.

      • ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค๊ฐ’์„ ๋น„๊ตํ•ด์„œ, ํ•ด๋‹น ๋ฆฌํ”„ ๋…ธ๋“œ๋กœ ์ด๋™ํ•˜์—ฌ ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ํ–‰์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”๋‹ค.

      • ํ‚ค ๊ฐ’์— ์˜ํ•œ ๋™๋“ฑ ๋ฐ ๋ฒ”์œ„(between) ๊ฒ€์ƒ‰์— ๋ชจ๋‘ ์œ ๋ฆฌ

      • ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ ๊ธฐ๋ณธํ‚ค (PK)๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ž๋™ ์ƒ์„ฑ ๋œ๋‹ค.

      • ์ธ๋ฑ์Šค ํŽ˜์ด์ง€๊ฐ€ ๋‹จ์ˆœํ•ด์ ธ ์ธ๋ฑ์Šค ์ €์žฅ์‹œ ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„์ด ์ž‘๋‹ค.

      • ์ƒ์„ฑ์‹œ PK โ†’ UNIQUE โ†’ ์ž์ฒด rowId ์ˆœ์„œ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑ.

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

      • ์†์„ฑ์˜ ๊ฐ’์œผ๋กœ B-tree ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, ๋ฆฌํ”„๋…ธ๋“œ์˜ ๊ฐ ํ–‰์€ ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ ๊ฐ’ ์ง€์ •

      • ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐฑ์‹  ๋˜๋Š” ์‚ญ์ œ๋˜๋ฉด์„œ ๋ฌด์ž‘์œ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค. ์ด ๋•Œ, ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์–‘์ด ๋งŽ๋‹ค๋ฉด ์›ํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

      • ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค์˜ ๋ฆฌํ”„๋…ธ๋“œ๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์•„๋‹ˆ๋ผ, ํ…Œ์ด๋ธ”์ƒ์˜ ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” rowid๋ฅผ ์ €์žฅํ•œ๋‹ค. (ex. Block๋ฒˆํ˜ธ - Block ๋‚ด์˜ Row๊ฐ€ ์œ„์น˜ํ•œ ์ˆœ๋ฒˆ)

      • ๋”ฐ๋ผ์„œ ์‹ค์ œ ํ…Œ์ด๋ธ”์˜ ์ž๋ฃŒ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ (์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ฑ„๋กœ) ์žˆ๋”๋ผ๋„, ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

      • ๋‹จ์ผ ์ปฌ๋Ÿผ ์ธ๋ฑ์Šค ๋ฟ๋งŒ ์•„๋‚˜๋ผ ๋ณตํ•ฉ์ ์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ธ๋ฑ์Šค๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

      • ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์ธ๋ฑ์Šค๋Š” ๋ณด์กฐ ์ธ๋ฑ์Šค.

      • ๋ณด์กฐ ์ธ๋ฑ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ธฐ๋ณธํ‚ค ์†์„ฑ์„ ์ฐพ์€ ๋‹ค์Œ, ํด๋Ÿฌ์Šคํ„ฐ ์ธ๋ฑ์Šค๋กœ ๊ฐ€์„œ ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ(row)๋ฅผ ์ฐพ๋Š”๋‹ค.

    • ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค์™€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ๊ตฌ์กฐ์ ์ธ ํŠน์ง•์œผ๋กœ ์ธํ•ด ํŠน์ • ํ‚ค ๊ฐ’์„ ์ฐพ๋Š” ๊ฒ€์ƒ‰์˜ ๊ฒฝ์šฐ๋Š” ์„ฑ๋Šฅ ๋ณด์žฅ์ด ๊ฐ€๋Šฅ.

    • ํ•˜์ง€๋งŒ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ Blcok ๊ฐ’๋“ค์˜ ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์ผ์ •์น˜ ์•Š์„ ์ˆ˜ ์žˆ์–ด์„œ, ์›ํ•˜๋Š” ๋งŒํผ์˜ ๋น ๋ฅธ ๊ฒ€์ƒ‰ ํšจ๊ณผ๋ฅผ ๋ณด์žฅ ํ•  ์ˆ˜ ์—†์Œ.

    • ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค ๊ตฌ์„ฑ์‹œ ์ž๋ฃŒ ์ €์žฅ ๋ฐ ์งˆ์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ์‹ ์ค‘ํžˆ ์ƒ์„ฑ ํ•ด์•ผ ํ•œ๋‹ค.

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

  • ์ธ๋ฑ์Šค๋Š” ๊ฒ€์ƒ‰ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์‚ฌ์šฉ

  • ํ•˜์ง€๋งŒ, ์ธ๋ฑ์Šค ์‚ฌ์šฉํ•œ๋‹ค๊ณ  (์ƒ์„ฑํ•œ๋‹ค๊ณ ) ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์ด ๋ฌด์กฐ๊ฑด ๋นจ๋ผ์ง€๋Š”๊ฒŒ ์•„๋‹˜.

  • ๋ฐ์ดํ„ฐ ์–‘์ด ๋ณ„๋กœ ์—†๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ ๊ฐ’์ด ๋ช‡ ์ข…๋ฅ˜ ์•ˆ๋˜๋ฉด ์ธ๋ฑ์Šค ์—†๋Š”๊ฒŒ ๋น ๋ฅผ ์ˆ˜๋„ ์žˆ์Œ

    (=์„ ํƒ๋„๊ฐ€ ๋†’๋‹ค๊ณ  ํ‘œํ˜„ํ•จ. = 1/์„œ๋กœ๋‹ค๋ฅธ ๊ฐ’์˜ ๊ฐœ์ˆ˜)

  • ์˜๋ฏธ ์—†์ด ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์˜คํžˆ๋ ค ๊ณต๊ฐ„ ๋‚ญ๋น„, ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Œ.

  • ์ธ๋ฑ์Šค ์ƒ์„ฑ ๊ณ ๋ ค ์‚ฌํ•ญ.

    • ์ธ๋ฑ์Šค๋Š” WHERE์ ˆ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ์ด์–ด์•ผ ํ•จ.

      [where์ ˆ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ์ผ ์ˆ˜๋ก ์ž์ฃผ ์ ‘๊ทผํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ˆ๊นŒ.]

    • ์ธ๋ฑ์Šค๋Š” Join(์กฐ์ธ)์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ์ด์–ด์•ผ ํ•จ.

    • ๋‹จ์ผ ํ…Œ์ด๋ธ”์— ์ธ๋ฑ์Šค๊ฐ€ ๋งŽ์œผ๋ฉด ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Œ

    • ์†์„ฑ์ด ๊ฐ€๊ณต๋˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

    • ์†์„ฑ์˜ ์„ ํƒ๋„๊ฐ€ ๋‚ฎ์„ ๋•Œ ์œ ๋ฆฌํ•จ

  • ๋‹จ, ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์ธ๋ฑ์Šค ๋งŽ์ด ์ƒ์„ฑํ•˜๋ฉด ์˜คํžˆ๋ ค ํšจ์œจ์ด ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Œ. ํ…Œ์ด๋ธ”๋‹น 4~5๊ฐœ ์ •๋„ ๊ถŒ์žฅ.

  • ๋ฌธ๋ฒ•

    CREATE [UNIQUE] INDEX [์ธ๋ฑ์Šค์ด๋ฆ„]
    ON ํ…Œ์ด๋ธ”์ด๋ฆ„ (์ปฌ๋Ÿผ์ด๋ฆ„ [ASC|DESC] [{, ์ปฌ๋Ÿผ์ด๋ฆ„ [ASC|DESC]} ...]);
  • ์ธ๋ฑ์Šค ์ƒ์„ฑ ์˜ˆ์‹œ

    CREATE INDEX ix_Book ON Book(bookname);
    CREATE INDEX ix_Book2 ON Book(publisher, price);
  • ์ƒ์„ฑ๋œ index๋กœ SQL๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ํ™•์ธ

  • workbench โ†’[Queryํƒญ] โ†’ [Explain Current Statment]

  • ์‹คํ–‰ ๊ฒฐ๊ณผ

[ํ•˜๋“œ๋””์Šคํฌ ๊ตฌ์กฐ ์ž๋ฃŒ ] https://gsk121.tistory.com/260

[MySQL DBMS๊ตฌ์กฐ] : https://mysqldba.tistory.com/2

[B-tree] https://hyungjoon6876.github.io/jlog/2018/07/20/btree.html

[MySQL๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ฐœ๋ก ๊ณผ ์‹ค์Šต ์ฑ… ๋‚ด์šฉ ์š”์•ฝ ๋ฐ ์ •๋ฆฌ]

Last updated