[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿ‘จโ€๐Ÿซ์•ˆ๋Œ์˜ INDEX

Meustarยท2025๋…„ 12์›” 22์ผ

์ถœ์ฒ˜: https://www.youtube.com/watch?v=NkZ6r6z2pBg

movie

๐Ÿ“Œ ์ธ๋ฑ์Šค(INDEX)๋Š” ๋ฌด์—‡์ด๋ฉฐ, ์™œ ํ•„์š”ํ•œ๊ฐ€?

์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์˜ค๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋А๋ ค์ง€๋Š” ์กฐํšŒ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ธ๋ฑ์Šค์˜ ์ฃผ์š” ์ข…๋ฅ˜์™€ ํŠน์ง•์€ ๋ฌด์—‡์ธ๊ฐ€?

์ข…๋ฅ˜ํŠน์ง•์žฅ์ ๋‹จ์ 
ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์ธ๋ฑ์Šค์™€ ํ•จ๊ป˜ ์ €์žฅ๋จ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ๊ฐ•๋ ฅ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/์‚ญ์ œ ์‹œ ์ •๋ ฌ ๋น„์šฉ ํผ
๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ„์ ‘ ์ฐธ์กฐํ•˜๋ฉฐ ๋ณ„๋„๋กœ ์ €์žฅ๋จ์‚ฝ์ž…/์‚ญ์ œ ๋น„์šฉ ์ ์Œ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š”, ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์‹œ ํ•œ ๋‹จ๊ณ„ ๋” ๊ฑฐ์นจ

๋ฐฐ๊ฒฝ์ง€์‹: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ดˆ ๊ฐœ๋…

์ด ์ž๋ฃŒ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ์„ ์ขŒ์šฐํ•˜๋Š” ํ•ต์‹ฌ ๊ฐœ๋…์ธ ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜(ํด๋Ÿฌ์Šคํ„ฐ๋“œ, ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ)์™€ ์ด๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ์ƒ์˜ ํŠน์ง•์„ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ์ฃ . ์ž๋ฃŒ๋ฅผ 100% ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด, ๋ฐœํ‘œ์˜ ๋ฐฐ๊ฒฝ์ด ๋˜๋Š” ๋งฅ๋ฝ๊ณผ ํ•จ๊ป˜ ํ•ต์‹ฌ์ ์ธ ์šฉ์–ด ๋ฐ ๊ฐœ๋…์„ ๋ฏธ๋ฆฌ ์‚ดํŽด๋ด…์‹œ๋‹ค.

1. MySQL๊ณผ InnoDB์˜ ์ค‘์š”์„ฑ

  • ์ด ๋ฐœํ‘œ์˜ ๋‚ด์šฉ์€ ๋‹จ์ˆœํžˆ '์ธ๋ฑ์Šค' ์ผ๋ฐ˜๋ก ์ด ์•„๋‹ˆ๋ผ, ํ˜„์žฌ ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MySQL์˜ InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค .
  • ์ธ๋ฑ์Šค์˜ ์ž‘๋™ ๋ฐฉ์‹, ํŠนํžˆ ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ๊ตฌํ˜„ ๋ฐฉ์‹์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜(์˜ˆ: MySQL, PostgreSQL, MSSQL)์™€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„(์˜ˆ: InnoDB, MyISAM)์— ๋”ฐ๋ผ ์กฐ๊ธˆ์”ฉ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ž๋ฃŒ์—์„œ ๋‚˜์˜ค๋Š” 'ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋Š” PK์™€ ๊ฐ™๋‹ค'๋Š” ์„ค๋ช…์€ InnoDB ํ™˜๊ฒฝ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ์ ์šฉ๋˜๋Š” ํŠน์ง•์ž„์„ ์•Œ๊ณ  ๋“ค์œผ๋ฉด ์ดํ•ด๊ฐ€ ํ›จ์”ฌ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

2. ์ธ๋ฑ์Šค ๊ตฌํ˜„์˜ ํ•ต์‹ฌ ๊ฐœ๋…: B-Tree ๊ตฌ์กฐ

์ž๋ฃŒ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…/์‚ญ์ œ๋˜์–ด๋„ ์ด ์ •๋ ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋งˆ๋ฒ• ๊ฐ™์€ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ B-Tree(๋น„ํŠธ๋ฆฌ)์ž…๋‹ˆ๋‹ค.

  • B-Tree๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?
    • B-Tree๋Š” "Balanced Search Tree(๊ท ํ˜• ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ)"์˜ ํ•œ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํŠธ๋ฆฌ ๊ตฌ์กฐ์™€ ๋‹ฌ๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์ด ๋””์Šคํฌ I/O๊ฐ€ ์žฆ์€ ํ™˜๊ฒฝ์—์„œ ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ๋‚ด๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค .
    • ํ•ต์‹ฌ ํŠน์ง•:
      • ๊ท ํ˜• ์žกํžŒ ๊ตฌ์กฐ (Balanced): ํŠธ๋ฆฌ์˜ ๋ชจ๋“  '์žŽ ๋…ธ๋“œ(๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ฐ€์žฅ ์•„๋ž˜์ธต)'๋Š” ๋ฃจํŠธ ๋…ธ๋“œ(๊ฐ€์žฅ ์œ„์ธต)์—์„œ๋ถ€ํ„ฐ ๊ฐ™์€ ๊ฑฐ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋“  ํ•ญ์ƒ ์ผ์ •ํ•œ ์‹œ๊ฐ„(O(log n))์ด ๊ฑธ๋ฆฌ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค .
      • ๋„“๊ณ  ๋‚ฎ์Œ: B-Tree๋Š” ํ•œ ๋…ธ๋“œ์— ๋งŽ์€ ์ˆ˜์˜ ํ‚ค(Key)๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด, ํŠธ๋ฆฌ์˜ ๋†’์ด๊ฐ€ ๋งค์šฐ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ, ํŠธ๋ฆฌ์˜ ๋†’์ด๊ฐ€ ๋‚ฎ๋‹ค๋Š” ๊ฒƒ์€ ๋””์Šคํฌ๋ฅผ ์ฝ๋Š” ํšŸ์ˆ˜๊ฐ€ ์ ๋‹ค๋Š” ๋œป์ด๋ฉฐ, ์ด๋Š” ๊ณง ์†๋„ ํ–ฅ์ƒ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
      • ์ˆœ์ฐจ์  ์ ‘๊ทผ ์šฉ์ด: B-Tree์˜ ์žŽ ๋…ธ๋“œ๋Š” ๋ณดํ†ต ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด, ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์€ ํ›„ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์„ ํ•  ๋•Œ ์ด์–ด์ง„ ๋…ธ๋“œ๋ฅผ ๋”ฐ๋ผ ์‰ฝ๊ฒŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋ฃŒ์™€์˜ ์—ฐ๊ฒฐ์ :
    • ์ž๋ฃŒ์—์„œ "ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์„œ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ์•„์ฃผ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค" ๋ผ๊ณ  ์„ค๋ช…ํ•˜๋Š” ๊ทผ๋ณธ์ ์ธ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์ด B-Tree์˜ ์ •๋ ฌ ๋ฐ ์ˆœ์ฐจ ์ ‘๊ทผ ํŠน์ง• ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

3. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค ์„ฑ๋Šฅ์˜ ๋น„๋ฐ€: ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ

ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๊ฐ€ ์™œ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ๊ฐ•๋ ฅํ•œ์ง€ ์„ค๋ช…ํ•  ๋•Œ, ์ž๋ฃŒ๋Š” ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์–ธ๊ธ‰ํ•˜๋ฉฐ ์บ์‹œ ์ „๋žต๊ณผ ์—ฐ๊ฒฐ ์ง“์Šต๋‹ˆ๋‹ค .

  • ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ (Spatial Locality) ์ด๋ž€?
    • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋ฉด, ๊ทธ ๋ฐ์ดํ„ฐ ์ฃผ๋ณ€์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋„ ๊ณง ์ ‘๊ทผ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.
    • ์ด ์›๋ฆฌ๋Š” CPU ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. CPU๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(RAM)๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅธ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๋””์Šคํฌ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋‹จ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, '์บ์‹œ ๋ผ์ธ(Cache Line)' ๋˜๋Š” 'ํŽ˜์ด์ง€(Page)' ๋‹จ์œ„๋กœ ์ฃผ๋ณ€ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์™€ ์บ์‹œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๋น„์œ : ์ฐฝ๊ณ ์—์„œ ๋ฌผ๊ฑด์„ ์ฐพ์„ ๋•Œ, ํ•„์š”ํ•œ ๋ฌผ๊ฑด ํ•˜๋‚˜๋งŒ ๊บผ๋‚ด์ง€ ์•Š๊ณ  ๊ทธ ๋ฌผ๊ฑด์ด ์žˆ๋Š” ์ƒ์ž ์ „์ฒด๋ฅผ ์ž‘์—…๋Œ€๋กœ ์˜ฎ๊ฒจ ๋†“๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒ์ž ์•ˆ์— ๋‹ค๋ฅธ ํ•„์š”ํ•œ ๋ฌผ๊ฑด๋“ค์ด ๋“ค์–ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

  • ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์™€์˜ ๊ด€๊ณ„:
    • ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ์ธ๋ฑ์Šค ์ˆœ์„œ์— ๋งž๊ฒŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค .
    • ๋งŒ์•ฝ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด 1๋ฒˆ๋ถ€ํ„ฐ 10๋ฒˆ๊นŒ์ง€์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ, ์ด ๋ฐ์ดํ„ฐ๋“ค์€ ๋””์Šคํฌ ์ƒ์—์„œ ๊ฐ€๊นŒ์šด ์œ„์น˜์— ์ €์žฅ๋˜์–ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ์ฃผ๋ณ€ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ(๋ฒ„ํผ ํ’€)์— ํ•œ ๋ฒˆ์— ์˜ฌ๋ผ์˜ค๊ฒŒ ๋˜์–ด, ์ดํ›„ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์‹œ ๋””์Šคํฌ I/O๊ฐ€ ํ•„์š” ์—†์–ด์ ธ ์—„์ฒญ๋‚œ ์†๋„ ํ–ฅ์ƒ์„ ์–ป์Šต๋‹ˆ๋‹ค . ์ด๊ฒƒ์ด ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด ๊ฐ•๋ ฅํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

4. ์„ฑ๋Šฅ ํŠœ๋‹์˜ ํ•ต์‹ฌ ์šฉ์–ด

์ž๋ฃŒ์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์—์„œ๋Š” ์ธ๋ฑ์Šค ์ „๋žต์„ ๋ณด์™„ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ค‘์š”ํ•œ ์„ค์ •๊ฐ’๊ณผ ์šฉ์–ด๋“ค์„ ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

4.1. Primary Key (PK)์™€ Auto Increment

  • Primary Key (PK): ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ž๋ฃŒ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋Š” PK๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ํ…Œ์ด๋ธ”๋‹น ํ•˜๋‚˜๋งŒ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค .
  • Auto Increment (์ž๋™ ์ฆ๊ฐ€): PK ํ•„๋“œ์— ์ƒˆ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ๊ณ ์œ  ๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค .
  • ์„ฑ๋Šฅ ์ด์Šˆ์™€ ํ•ด๊ฒฐ:
    • ์ž๋ฃŒ๋Š” ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ PK๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๋ฅผ ์˜ˆ๋กœ ๋“ญ๋‹ˆ๋‹ค .
    • ์ด๋ฉ”์ผ(๋ฌธ์ž์—ด)์€ ์ˆœ์ฐจ์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ƒˆ๋กœ์šด ์ด๋ฉ”์ผ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค(๋ฐ์ดํ„ฐ)์˜ ์ค‘๊ฐ„์— ์‚ฝ์ž…๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” ๋น„ํšจ์œจ์ ์ธ ์ž‘์—…(์ฐธ์‚ฌ)์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค .
    • Auto Increment๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ID๊ฐ€ ํ•ญ์ƒ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋˜๋ฏ€๋กœ, ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” ์ž‘์—… ์—†์ด ๊ฐ€์žฅ ๋์—๋งŒ ์‚ฝ์ž…๋˜์–ด ์‚ฝ์ž…(INSERT) ์„ฑ๋Šฅ ์ด์Šˆ๋ฅผ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

4.2. ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ํ•ด์‹œ ํ…Œ์ด๋ธ”

  • ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ํŠน์ง•: ๋ฐ์ดํ„ฐ ์ž์ฒด์™€ ๋ถ„๋ฆฌ๋˜์–ด ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜(PK ๊ฐ’)๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค . ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ•œ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด์‹œ ํ…Œ์ด๋ธ” (Hash Table): ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
    • ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ Key(๊ฒ€์ƒ‰์–ด)๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ฃผ์†Œ(Bucket)๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค .
    • ๊ฒ€์ƒ‰ ๋Œ€์ƒ์˜ ์œ„์น˜๋ฅผ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์–ด ๋งค์šฐ ๋น ๋ฅธ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฃŒ์—์„œ ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๊ฐ€ "ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ๊ต‰์žฅํžˆ ๊ฒƒ์„ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒ ์ฃ " ๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ์ด ์›๋ฆฌ์ž…๋‹ˆ๋‹ค.

4.3. InnoDB Buffer Pool Size (๋ฒ„ํผ ํ’€ ํฌ๊ธฐ)

  • Buffer Pool์˜ ์—ญํ• :InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ๋””์Šคํฌ I/O๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ ์˜์—ญ์ž…๋‹ˆ๋‹ค .
    • ์ž์ฃผ ์ ‘๊ทผํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ์™€ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ์ด ๋ฒ„ํผ ํ’€์— ์ €์žฅํ•ด๋‘ก๋‹ˆ๋‹ค .
    • ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์œผ๋ ค ํ•  ๋•Œ, ๋””์Šคํฌ ๋Œ€์‹  ๋ฒ„ํผ ํ’€์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค๋ฉด ์—„์ฒญ๋‚œ ์†๋„ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค (๋””์Šคํฌ๋Š” ๋А๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋น ๋ฅด๋ฏ€๋กœ).
  • ์„ฑ๋Šฅ ํŠœ๋‹์˜ ํ•ต์‹ฌ:
    • ์ž๋ฃŒ์—์„œ๋Š” ์ด innodb_buffer_pool_size ๊ฐ’์„ 1๊ธฐ๊ฐ€, 2๊ธฐ๊ฐ€ ์ด์ƒ์œผ๋กœ ์กฐ์ •ํ•˜์—ฌ ํผํฌ๋จผ์Šค๋ฅผ ํ™• ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค .
    • ์ด ๊ฐ’์ด ํด์ˆ˜๋ก DB๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ฒŒ ๋˜์–ด ๋””์Šคํฌ ์ ‘๊ทผ ํšŸ์ˆ˜๋ฅผ ์ค„์—ฌ ์ „๋ฐ˜์ ์ธ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ์ธ๋ฑ์Šค์˜ ํšจ์œจ์„ฑ ์ธก์ •: ์นด๋””๋„๋ฆฌํ‹ฐ (Cardinality)

์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค ์ปฌ๋Ÿผ์„ ๊ฒฐ์ •ํ•  ๋•Œ, ์ž๋ฃŒ์—์„œ ์นด๋””๋„๋ฆฌํ‹ฐ๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค .

  • ์นด๋””๋„๋ฆฌํ‹ฐ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

    • ํŠน์ • ์ปฌ๋Ÿผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต๋˜์ง€ ์•Š์€ ๊ฐ’์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์–ผ๋งˆ๋‚˜ ๋‹ค์–‘ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ๋†’์€ ์นด๋””๋„๋ฆฌํ‹ฐ: ๊ฐ’์ด ๊ฑฐ์˜ ์ค‘๋ณต๋˜์ง€ ์•Š๊ณ  ์œ ์ผํ•œ ๊ฒฝ์šฐ (์˜ˆ: ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ์ด๋ฉ”์ผ ์ฃผ์†Œ, ID)
    • ๋‚ฎ์€ ์นด๋””๋„๋ฆฌํ‹ฐ: ๊ฐ’์ด ๋งŽ์ด ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ (์˜ˆ: ์„ฑ๋ณ„(๋‚จ/์—ฌ), ์˜ˆ/์•„๋‹ˆ์˜ค)
  • ์ธ๋ฑ์Šค์™€์˜ ๊ด€๊ณ„:

    • ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์„์ˆ˜๋ก ์ธ๋ฑ์Šค์˜ ํšจ์œจ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    • ์ด์œ : ๊ฐ’์ด ์œ ์ผํ• ์ˆ˜๋ก (์˜ˆ: ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ) ์ธ๋ฑ์Šค๋ฅผ ๋”ฐ๋ผ ํ•œ ๋ฒˆ์˜ ๊ฒ€์ƒ‰์œผ๋กœ ์›ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ •ํ™•ํžˆ ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ „์ฒด ํ…Œ์ด๋ธ”์„ ํ›‘์–ด๋ณด๋Š” ๊ฒƒ(Full Scan)๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.
    • ๋ฐ˜๋Œ€๋กœ ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋‚ฎ์œผ๋ฉด (์˜ˆ: ์„ฑ๋ณ„) ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ํ…Œ์ด๋ธ”์˜ ์ ˆ๋ฐ˜์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ, ์ธ๋ฑ์Šค๋ฅผ ์“ฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ทธ๋ƒฅ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ํ›‘์–ด๋ณด๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .


1. ์ธ๋ฑ์Šค์˜ ๊ธฐ๋ณธ ์ •์˜ ๋ฐ ํ•„์š”์„ฑ

  1. ์ธ๋ฑ์Šค์˜ ์ •์˜:
    1. ์ธ๋ฑ์Šค๋Š” ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ์ž„์˜์˜ ๊ทœ์น™๋Œ€๋กœ ๋ถ€์—ฌ๋œ ์ž„์˜์˜ ๋Œ€์ƒ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌด์–ธ๊ฐ€์ด๋‹ค .
    2. ์ž๋ฐ”์—์„œ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ , ์šฐ๋ฆฌ ์ฃผ๋ณ€์˜ ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค๋„ ์ธ๋ฑ์Šค๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค .
    3. ์‹ค์ƒํ™œ ์ธ๋ฑ์Šค ์˜ˆ์‹œ:
      1. '2ํ•™๋…„ 3๋ฐ˜ 21๋ฒˆ'์ฒ˜๋Ÿผ ํŠน์ • ๋Œ€์ƒ์„ ๋ช…ํ™•ํžˆ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ .
      2. '์„œ์šธ์‹œ ์†กํŒŒ๊ตฌ ์‹ ์ฒœ๋™'๊ณผ ๊ฐ™์€ ์ฃผ์†Œ๋‚˜ ์šฐํŽธ๋ฒˆํ˜ธ๋„ ์ธ๋ฑ์Šค์˜ ์ผ์ข…์ด๋‹ค .
    4. ์ธ๋ฑ์Šค๋Š” ํŠน์ • ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ผฌ์ง‘์–ด ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•œ ๋ณด์กฐ ์ˆ˜๋‹จ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค .
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ ์ธ๋ฑ์Šค ํ•„์š”์„ฑ:
    1. ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์•„์˜ค๋Š”์ง€ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค .
    2. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์กฐํšŒ ์„ฑ๋Šฅ์ด ๋А๋ ค์ง€๋Š” ๋ฌธ์ œ๋ฅผ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค (100%๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋งŽ์€ ๋ถ€๋ถ„ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ) .
    3. ๋А๋ฆฐ ์ฟผ๋ฆฌ๋‚˜ ์กฐํšŒ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์ธ๋ฑ์Šค๋ฅผ ๋จผ์ € ๊ณ ๋ คํ•ด ๋ณด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค .

2. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค (Clustered Index)์˜ ์ดํ•ด

  1. ์ธ๋ฑ์Šค์˜ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜: ์ธ๋ฑ์Šค์—๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์™€ ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋‹ค .
  2. ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐœ๋…:
    1. ํด๋Ÿฌ์Šคํ„ฐ(Cluster)๋Š” ๊ตฐ์ง‘์ด๋ผ๋Š” ๋œป์ด๋ฉฐ, ๋ฐ˜๋„์ฒด ํด๋Ÿฌ์Šคํ„ฐ, ์•„์ดํด๋ ˆ์ด์Šคํ„ฐ ๋“ฑ์˜ ์šฉ์–ด์—์„œ ์‚ฌ์šฉ๋œ๋‹ค .
    2. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋ž€ ๋ฐ์ดํ„ฐ์™€ ์ธ๋ฑ์Šค๊ฐ€ ํ•ฉ์ณ์ ธ ๊ตฐ์ง‘ํ™”๋œ ์ธ๋ฑ์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค .
    3. ํŠน์ง•์€ ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ์— ๊ฐ€๊นŒ์ด ์žˆ์–ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ํ˜•ํƒœ์ด๋‹ค .
  3. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ์ž‘๋™ ๋ฐฉ์‹ (์˜ˆ์‹œ):
    1. ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ๋“ฑ์ˆ˜(์ˆœ์„œ)๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค (์˜ˆ: 41๋“ฑ, 42๋“ฑ ๋“ฑ) .
    2. 43๋“ฑ์˜ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ (์‹ ์ž…)๊ฐ€ ์‚ฝ์ž…๋˜์–ด์•ผ ํ•  ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋Š” ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค .
    3. ์‚ฝ์ž… ๊ณผ์ •: 43๋“ฑ์ด ๋“ค์–ด๊ฐˆ ์œ„์น˜๋ฅผ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์˜ 43๋“ฑ ์ดํ•˜์˜ ๋ฐ์ดํ„ฐ๋“ค (43๋“ฑ, 44๋“ฑ, 45๋“ฑ...)์ด ํ•œ ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€๋ ค๋‚˜๊ฒŒ ๋˜๊ณ , ์ƒˆ๋กœ์šด 43๋“ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋œ๋‹ค .
  4. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ์žฅ๋‹จ์ :
    1. ์žฅ์  (๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ๊ฐ•๋ ฅ): ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, 41๋“ฑ๋ถ€ํ„ฐ 43๋“ฑ๊นŒ์ง€์™€ ๊ฐ™์ด ํŠน์ • ๋ฒ”์œ„๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ๋ฆฌํ•˜๋‹ค .
    2. ๋‹จ์  (์‚ฝ์ž…/์ •๋ ฌ ๋น„์šฉ ๋ฐœ์ƒ):
      1. ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋  ๊ฒฝ์šฐ, ์ •๋ ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ€์–ด๋‚ด๋Š” (์žฌ์ •๋ ฌํ•˜๋Š”) ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค .
      2. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„์ˆ˜๋ก (์˜ˆ: 1,000๋ช… ์ค‘ 43๋“ฑ ์‚ฝ์ž… ์‹œ 900์—ฌ ๋ฒˆ ๋ฐ€์–ด๋‚ด์•ผ ํ•จ) ์„ฑ๋Šฅ์— ์•…์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค .

3. ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค (Non-Clustered Index)์˜ ์ดํ•ด

  1. ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ์ •์˜:
    1. ํด๋Ÿฌ์Šคํ„ฐํ™”๋˜์ง€ ์•Š์œผ๋ฉด์„œ ๋ฐ์ดํ„ฐ์™€ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์–ด๋–ค ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํ˜•ํƒœ์ด๋‹ค .
    2. ์ด๋Š” ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„๊ฐ„๋‹ค .
  2. ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ์ž‘๋™ ๋ฐฉ์‹ (์˜ˆ์‹œ):
    1. ์ธ๋ฑ์Šค๋Š” ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค (์˜ˆ: 41๋“ฑ์€ 123๋ฒˆ์ง€, 20๋“ฑ์€ 231๋ฒˆ์ง€, 1๋“ฑ์€ 145๋ฒˆ์ง€) .
    2. ์ธ๋ฑ์Šค ์ž์ฒด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ(123๋ฒˆ์ง€, 231๋ฒˆ์ง€)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค .
    3. ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„ ๊ทธ ์ฃผ์†Œ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ฐพ๊ฒŒ ๋œ๋‹ค (2์ฐจ ๊ฒ€์ƒ‰ ํ•„์š”) .
  3. ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ํŠน์ง•:
    1. ๋ฐ์ดํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋  ํ•„์š”๊ฐ€ ์—†์–ด ๊ตณ์ด ์ˆœ์„œ๋Œ€๋กœ ์žˆ์„ ํ•„์š”๊ฐ€ ์—†๋‹ค .
    2. ๋ณดํ†ต ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table) ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค .

4. ํด๋Ÿฌ์Šคํ„ฐ๋“œ vs ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค ๋น„๊ต ๋ฐ PK, ์นด๋””๋„๋ฆฌํ‹ฐ์˜ ์ค‘์š”์„ฑ

4.1. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค(PK)์˜ ํŠน์ง• ๋ฐ ์ด์Šˆ

  1. PK์™€์˜ ๊ด€๊ณ„: ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๋Š” ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋ณธ ํ‚ค(PK)์™€ ์œ ์‚ฌํ•˜๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค .
  2. ์ˆœ์„œ ๋ฐ ๊ฐœ์ˆ˜ ์ œ์•ฝ:
    1. ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค .
    2. ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์„ ์ˆ˜ ์—†๋‹ค (๊ฐ€๋‚˜๋‹ค์ˆœ ์ •๋ ฌ๊ณผ ๋“ฑ์ˆ˜ ์ •๋ ฌ์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ) .
    3. ๋”ฐ๋ผ์„œ ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค/PK๋Š” ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค .
  3. ํšจ์œจ์„ฑ: ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ๋งค์šฐ ์ข‹์œผ๋ฉฐ, ์บ์‹œ ์ „๋žต์˜ ๊ณต๊ฐ„ ์ง€์—ญ์„ฑ(Spatial Locality)๊ณผ ์œ ์‚ฌํ•˜์—ฌ ๋น„์Šทํ•œ ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๊ธฐ ์œ ๋ฆฌํ•˜๋‹ค .
  4. ์‚ฝ์ž… ์‹œ ๋ฌธ์ œ์ :
    1. ์ค‘๊ฐ„์— ์ƒˆ๋กœ์šด PK ๊ฐ’์ด ์‚ฝ์ž…๋  ๋•Œ ์žฌ์ •๋ ฌ๋กœ ์ธํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ๋งŒ ๊ถŒ์ด๋‚˜ ๋ฐฑ๋งŒ ๊ถŒ์˜ ๋ฐ์ดํ„ฐ์—์„œ ์ค‘๊ฐ„์— ์‚ฝ์ž…๋˜๋ฉด ๊ต‰์žฅํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ฐธ์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค .
    2. ์ด ๋ฌธ์ œ ๋•Œ๋ฌธ์— PK๋ฅผ ์˜คํ†  ์ธํฌ๋ฆฌ๋จผํŠธ (Auto Increment, ์ž๋™์œผ๋กœ ์ฆ๊ฐ€) ์˜ต์…˜์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํ•ญ์ƒ ๊ฐ€์žฅ ๋’ค์— ์‚ฝ์ž…๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์ƒ ์œ ๋ฆฌํ•˜๋‹ค .

4.2. ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค(๋ณด์กฐ ์ธ๋ฑ์Šค)์˜ ํŠน์ง•

  1. ์—ญํ• : ์›ํ•˜๋Š” ๊ฐ’ (์˜ˆ: 45๋“ฑ)์„ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ์—ญํ• ์ด๋‹ค (ํ†ต์ƒ์ ์œผ๋กœ ์ธ๋ฑ์Šค๋ผ๊ณ  ๋ถˆ๋ฆผ) .
  2. ์ˆœ์„œ์™€ ๊ฐœ์ˆ˜:
    1. ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ์™€๋Š” ์ƒ๊ด€์ด ์—†๋‹ค (์•„๋ฌด๊ฑฐ๋‚˜ ๋„ฃ์–ด๋„ ๋จ) .
    2. ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋ฐฉ์‹์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ณด์กฐ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ณ , ์ด ์ธ๋ฑ์Šค์— ์ €์žฅ๋œ PK๋ฅผ ๋‹ค์‹œ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ตœ์ข… ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ์— ์ƒ๊ด€์ด ์—†๋‹ค .
    3. ๋”ฐ๋ผ์„œ ํ•œ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค (๋“ฑ์ˆ˜, ์ด๋ฆ„, ํ•™๋ฒˆ ๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ์ค€์œผ๋กœ ์ธ๋ฑ์Šค ์„ค์ • ๊ฐ€๋Šฅ) .
  3. ์ถ”๊ฐ€ ๋น„์šฉ:
    1. ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. ๋ณด์กฐ ์ธ๋ฑ์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค(PK)๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์–ด ๋ฐ์ดํ„ฐ์™€ ๋ถ„๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅ ๊ณต๊ฐ„์ด ๋‚ญ๋น„๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ†ต์ƒ์ ์œผ๋กœ ์•ฝ 10% ์ •๋„์˜ ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ถ”์ •๋œ๋‹ค .
  4. ์ธ์„œํŠธ ์‹œ ๋น„์šฉ:
    1. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์— ๋น„ํ•ด ์ž‘์—…์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ, ์ƒˆ๋กœ์šด ํ–‰์ด ๋“ค์–ด์˜ฌ ๋•Œ ์ด ํ–‰์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์ž‘์—…์ด ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€๋œ๋‹ค .

4.3. ์นด๋””๋„๋ฆฌํ‹ฐ (Cardinality)์˜ ์ค‘์š”์„ฑ

  1. ์นด๋””๋„๋ฆฌํ‹ฐ์˜ ์ •์˜: ์ธ๋ฑ์Šค์˜ ํšจ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ์ด๋‹ค .
  2. ์ค‘์š”์„ฑ: ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ›‘๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์œ ๋ฆฌํ•˜์ง€๋งŒ, ์ค‘๋ณต๋œ ๊ฐ’๋“ค์ด ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ํšจ๊ณผ๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค .
  3. ํ‰๊ฐ€ ๊ธฐ์ค€:
    1. ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋‚ฎ์Œ: ์ค‘๋ณต๋œ ๊ฐ’๋“ค์ด ๋งŽ์„์ˆ˜๋ก (์˜ˆ: ์„ฑ๋ณ„ - ๋‚จ์ž/์—ฌ์ž) ์นด๋””๋„๋ฆฌํ‹ฐ๋Š” ๋‚ฎ์•„์ง„๋‹ค .
    2. ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์Œ: ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์ฒ˜๋Ÿผ ์œ ์ผํ•œ ๊ฐ’์ผ์ˆ˜๋ก ์นด๋””๋„๋ฆฌํ‹ฐ๋Š” ๋†’์•„์ง„๋‹ค .
  4. ํ™œ์šฉ: ์–ด๋–ค ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๋ถ€์—ฌํ• ์ง€ ํŒ๋‹จํ•  ๋•Œ ์นด๋””๋„๋ฆฌํ‹ฐ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉฐ, ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์„์ˆ˜๋ก ์ธ๋ฑ์Šค ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค .
ํŠน์ง•ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค (Clustered Index)๋…ผํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค (Non-Clustered Index)
์ •๋ ฌ ๋ฐฉ์‹๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋จ (๋ญ‰์ณ ์žˆ์Œ)๋ฐ์ดํ„ฐ์™€ ์ธ๋ฑ์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ '์ฐธ์กฐ'ํ•จ
๊ฐœ์ˆ˜ํ…Œ์ด๋ธ”๋‹น ๋‹จ ํ•˜๋‚˜๋งŒ ์กด์žฌ ๊ฐ€๋Šฅ (PK์™€ ์œ ์‚ฌ)ํ…Œ์ด๋ธ”๋‹น ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌ ๊ฐ€๋Šฅ
๊ฐ•์ ๋ฒ”์œ„ ๊ฒ€์ƒ‰ (Range Search)์— ์•„์ฃผ ๊ฐ•๋ ฅํ•จํŠน์ • ๊ฐ’์„ ๋นจ๋ฆฌ ์ฐพ๋Š” ๊ฒƒ์— ์œ ๋ฆฌํ•จ (ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋ฐฉ์‹)
๋‹จ์ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/์ˆ˜์ • ์‹œ ๋ฐ์ดํ„ฐ ๋ฐ€์–ด๋‚ด๊ธฐ ๋น„์šฉ ๋ฐœ์ƒ์ธ๋ฑ์Šค ์ €์žฅ์„ ์œ„ํ•œ ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š” (์•ฝ 10%)

5. ์ธ๋ฑ์Šค ํ™œ์šฉ ์‚ฌ๋ก€: PK๋ฅผ Auto Increment๋กœ ์“ฐ๋Š” ์ด์œ 

  1. ๋ฌธ์ œ ์ œ๊ธฐ: ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ค‘, ์œ ์ € ๋กœ๊ทธ์ธ ์‹œ ์ด๋ฉ”์ผ์„ ID๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋ฉ”์ผ์„ PK๋กœ ๊ฐ€์ ธ๊ฐˆ ๊ฒฝ์šฐ DB ์„ฑ๋Šฅ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋‹ค .
  2. PK๋ฅผ ์ด๋ฉ”์ผ๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ์˜ ์„ฑ๋Šฅ ์ด์Šˆ:
    1. ์ด๋ฉ”์ผ์€ ๋ฌธ์ž์—ด ๊ธฐ๋ฐ˜์ด๋ฉฐ, ์ด๋ฉ”์ผ์ด ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค(PK) ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค .
    2. ๊ธฐ์กด์— 'Sample'์ด๋ผ๋Š” ์ด๋ฉ”์ผ์ด ๋งˆ์ง€๋ง‰์— ์žˆ์—ˆ๋‹ค๊ณ  ํ•  ๋•Œ, ์ƒˆ๋กœ ๋“ค์–ด์˜จ 'AnDol'์ด๋ผ๋Š” ์ด๋ฉ”์ผ์€ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ์ƒ Sample ์•ž์— ์œ„์น˜ํ•œ๋‹ค .
    3. ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค์˜ ํŠน์„ฑ์ƒ, 'AnDol'์ด ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์— ์žˆ๋˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋“ค์„ ๋’ค๋กœ ๋ฐ€์–ด๋‚ด์•ผ ํ•œ๋‹ค .
    4. ํšŒ์›์ด 100๋งŒ ๋ช… ์ •๋„ ๋˜์—ˆ์„ ๋•Œ ์ด ์‚ฝ์ž… ์ž‘์—…์€ ๊ต‰์žฅํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ฒŒ ๋˜๋ฉฐ, ์ด๋Š” ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ๋ชป ์‹œํ‚ฌ ์ •๋„์˜ ์„ฑ๋Šฅ ์ด์Šˆ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค .
  3. ํ•ด๊ฒฐ ๋ฐฉ์•ˆ:
    1. ์ด๋ฉ”์ผ์ฒ˜๋Ÿผ ๊ณ ์œ ํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์€ ์œ ๋‹ˆํฌ ์ œ์•ฝ์กฐ๊ฑด๋งŒ ๋ถ€์—ฌํ•˜๊ณ , ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค(PK)๋Š” ๋ณ„๋„์˜ ์‹œํ€€์Šค ๊ฐ’ (์˜ˆ: ์ž๋™ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž)์œผ๋กœ ์ฃผ๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์ƒ ์œ ๋ฆฌํ•˜๋‹ค .

6. ์ธ๋ฑ์Šค ๋ฏธ์ ์šฉ ๋ฐ ์ ์šฉ ์‹œ ์„ฑ๋Šฅ ๋น„๊ต

6.1. ์ธ๋ฑ์Šค๊ฐ€ ์—†์„ ๋•Œ์˜ ๋ฌธ์ œ์ 

  1. PK๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ: ๊ฐœ๋ฐœ์ž๋“ค์€ ์œ ์ € ID๋‚˜ ์•„ํ‹ฐํด ID(PK)๋ฅผ ์•Œ๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค ๊ฐœ๋… ์—†์ด๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค .
  2. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์˜ ๊ฒ€์ƒ‰: ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” PK๋ฅผ ๋ชจ๋ฅด๋ฉฐ, ํƒ€์ดํ‹€์ด๋‚˜ ์ด๋ฉ”์ผ ๋“ฑ ๋น„(้ž)PK ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฒ€์ƒ‰ํ•œ๋‹ค .
  3. ์„ฑ๋Šฅ ์ธก์ • ํ™˜๊ฒฝ ์„ค์ •:
    1. ์œ ์ € ๊ฒ€์ƒ‰: find by email
    2. ์•„ํ‹ฐํด ๊ฒ€์ƒ‰: find by title
    3. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ: ์œ ์ € 10๋งŒ ๋ช…, ๊ฐ ์œ ์ €๊ฐ€ ์•„ํ‹ฐํด 5๊ฐœ์”ฉ ์ž‘์„ฑ (์ด 50๋งŒ ๊ฐœ ์•„ํ‹ฐํด) .
  4. ์ธ๋ฑ์Šค ๋ฏธ์ ์šฉ ์‹œ ๊ฒฐ๊ณผ:
    1. find by email ๊ฒ€์ƒ‰ ์‹œ: 0.6์ดˆ๊ฐ€ ์†Œ์š”๋˜์—ˆ๋‹ค .
    2. ๋ฌธ์ œ์ : 0.6์ดˆ๋Š” ๋‹ค์Œ ์ž‘์—…์„ ์œ„ํ•œ ์ค€๋น„ ์‹œ๊ฐ„์œผ๋กœ, ํ•ด๋‹น ์ž‘์—… ์ดํ›„์˜ ๋ชจ๋“  ์ž‘์—…์€ 0.6์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(Latency) ์ €ํ•˜๋กœ ์ด์–ด์ง„๋‹ค .
    3. ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์—์„œ๋Š” ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ ธ ์„œ๋ฒ„๊ฐ€ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ํƒ€์ž„์•„์›ƒ์ด ๊ฑธ๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค .
    4. find by title ๊ฒ€์ƒ‰ ์‹œ: 5์ดˆ๊ฐ€ ์†Œ์š”๋˜์—ˆ๋‹ค .
    5. ์ด๋Š” CPU๊ฐ€ ์ดˆ๋‹น 4.5GHz ์ •๋„๋กœ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ์ดˆ๊ณผ๋˜์–ด ๋ฐœ์ƒํ•œ ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ์ด๋‹ค .

6.2. ์ธ๋ฑ์Šค ์ ์šฉ ์‹œ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐ ์œ ์˜์ 

  1. ์ธ๋ฑ์Šค ์ ์šฉ ํ›„ ๊ฒฐ๊ณผ: 0.001์ดˆ ๋‚ด๋กœ ์••๋„์ ์œผ๋กœ ๋นจ๋ผ์กŒ๋‹ค .
  2. ์ธ๋ฑ์Šค ์‚ฌ์šฉ ์œ ์˜์ :
    1. ์ธ๋ฑ์Šค๋Š” ๋ฌด์กฐ๊ฑด ์ข‹๊ฑฐ๋‚˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์— ๊ฑฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค .
    2. ๋ชจ๋“  ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ถ”๊ฐ€์ ์ธ ๋น„์šฉ (๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‹œ ์ธ๋ฑ์Šค ์ƒ์„ฑ ์ž‘์—…)์ด ๋ฐœ์ƒํ•˜์—ฌ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ ์ด์Šˆ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค .
    3. ๋”ฐ๋ผ์„œ ์–ด๋–ค ์ƒํ™ฉ์— ์ธ๋ฑ์Šค๊ฐ€ ํ•„์š”ํ•œ์ง€ ๊ทธ ํŠน์ง•์„ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค .

7. ์ธ๋ฑ์Šค ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•œ ์‹ฌํ™” ๊ฐœ๋… ๋ฐ DB ์„ค์ • ํŒ

  1. ์‹คํ–‰ ๊ณ„ํš (EXPLAIN):
    1. ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ MySQL์ด ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•  ๊ฒƒ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ํ‚ค์›Œ๋“œ (EXPLAIN)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค .
    2. ์ด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ํŠœ๋‹ํ•  ์ˆ˜ ์žˆ๋‹ค .
    3. PK(ํด๋Ÿฌ์Šคํ„ฐ๋“œ ์ธ๋ฑ์Šค)๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ B-Tree ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•˜๋ฉด ์‹คํ–‰ ๊ณ„ํš ๋ถ„์„์— ๋„์›€์ด ๋œ๋‹ค .
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€ ๊ฐœ๋…:
    1. DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ธ ํŽ˜์ด์ง€(Page) ๋˜๋Š” ๋ธ”๋ก(Block) ๊ฐœ๋…์€ ์šด์˜์ฒด์ œ์—์„œ ๋งํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€์™€ ์œ ์‚ฌํ•˜๋‹ค .
    2. ์ด์™ธ์—๋„ ์นด๋””๋„๋ฆฌํ‹ฐ, ๋ณตํ•ฉ ํ‚ค(Composite Key) ๋“ฑ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค .
  3. DB ์„ค์ • ํŒ (์„ฑ๋Šฅ ์ตœ์ ํ™”):
    1. innodb_buffer_pool_size ์„ค์ •๊ฐ’์„ ์กฐ์ •ํ•˜๋ฉด ํผํฌ๋จผ์Šค๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค .
    2. ๊ธฐ๋ณธ๊ฐ’ ๋Œ€์‹  1๊ธฐ๊ฐ€, 2๊ธฐ๊ฐ€ ๋“ฑ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํผํฌ๋จผ์Šค๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค .
    3. ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋กœ๊น…ํ•˜์—ฌ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด slow query log ์„ค์ •์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค .
profile
์œ ํŠœ๋ธŒ ๊ธฐ์ˆ  ์˜์ƒ์„ ๋ณด๋ฉด์„œ ์ž˜ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด... Lilys AI๋ฅผ ํ™œ์šฉํ•ด ๋ฐฐ๊ฒฝ์ง€์‹, ์˜์ƒ ์ „์ฒด ์š”์•ฝ ๋ฐ ํ•ต์‹ฌ ๋‚ด์šฉ ์„ค๋ช…๋“ค์„ ๋ธ”๋กœ๊น… ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑํ•œ ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•ด์„œ ์–ธ์ œ๊ณ  ๋‹ค์‹œ "๋‚ด๊ฐ€" ์ฐพ์•„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€