๐Ÿ 6-1 ์ธ๋ฑ์Šค [๊ธฐ๋ณธ]

๐Ÿ 6-2 ์ธ๋ฑ์Šค [๋‚ด๋ถ€ ๋™์ž‘ ์›๋ฆฌ]

๐Ÿ 6-3 ์ธ๋ฑ์Šค [์‚ฌ์šฉ๋ฒ• & ์œ ์˜์‚ฌํ•ญ]

<aside> ๐Ÿ’ก ์ธ๋ฑ์Šค๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. WHERE ์ ˆ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์—ด์— ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•จ
  2. ์นด๋””๋‚ ๋ฆฌํ‹ฐ๊ฐ€ ๋†’์€ (์ค‘๋ณต๋„๊ฐ€ ๋‚ฎ์€) ์—ด์— ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•จ
  3. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ธ๋ฑ์Šค๋Š” ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

</aside>

<aside> ๐Ÿ’ก DB ์Šค์บ” ์ข…๋ฅ˜ 1. ํ…Œ์ด๋ธ” ์Šค์บ” (table scan)

์ธ๋ฑ์Šค๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋””์Šคํฌ์— ์œ„์น˜ํ•œ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ์œ ํ˜•

ยท ํ…Œ์ด๋ธ” ํ’€ ์Šค์บ” (table full scan)

1-1. ํ…Œ์ด๋ธ” ํ’€ ์Šค์บ” (table full scan)

์ธ๋ฑ์Šค๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ํ…Œ์ด๋ธ”๋กœ ๋ฐ”๋กœ ์งํ–‰ , ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํ›‘์–ด๋ณด๋Š” ๋ฐฉ์‹.

์กฐ๊ฑด๋ฌธ ๊ธฐ์ค€์œผ๋กœ ํ™œ์šฉํ•  ์ธ๋ฑ์Šค๊ฐ€ ์—†์„๋•Œ ๋ฐœ์ƒ,ย  ์„ฑ๋Šฅ์ ์œผ๋กœ ๋ถ€์ •์ 

2. ์ธ๋ฑ์Šค ์Šค์บ”ย (index scan)

์ธ๋ฑ์Šค๋กœ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ์œ ํ˜•

ยท ์ธ๋ฑ์Šค ๋ฒ”์œ„ ์Šค์บ” , ์ธ๋ฑ์Šค ํ’€ ์Šค์บ” , ์ธ๋ฑ์Šค ๊ณ ์œ  ์Šค์บ”, ์ธ๋ฑ์Šค ๋ฃจ์Šค ์Šค์บ”, ์ธ๋ฑ์Šค ๋ณ‘ํ•ฉ ์Šค์บ”

2-1. ์ธ๋ฑ์Šค ๋ฒ”์œ„ ์Šค์บ” (Index range scan)

์ธ๋ฑ์Šค๋ฅผ ๋ฒ”์œ„ ๊ธฐ์ค€์œผ๋กœ ์Šค์บ”ํ•œ ๋’ค ์Šค์บ” ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ์‹

Between A and B ๊ตฌ๋ฌธ, < , > , LIKE ๋“ฑย  ๋ฒ”์œ„ ์Šค์บ”

์ข์€ ๋ฒ”์œ„๋ฅผ ์Šค์บ”ํ•  ๋•Œ๋Š” ์„ฑ๋Šฅ์ ์œผ๋กœ ๋งค์šฐ ์ข‹์Œ. ๋„“์€ ๋ฒ”์œ„๋Š” ๋น„ํšจ์œจ์ .

2-2.ย ์ธ๋ฑ์Šค ํ’€ ์Šค์บ”ย ย (Index full scan)

์ธ๋ฑ์Šค๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹.ย  ์ธ๋ฑ์Šค๋กœ ๊ตฌ์„ฑ๋œ ์—ด ์ •๋ณด๋งŒ ์ ‘๊ทผ

ํ…Œ์ด๋ธ” ํ’€ ์Šค์บ” ๋ฐฉ์‹๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ ์ƒ ์œ ๋ฆฌํ•˜์ง€๋งŒ , ์ „ ์˜์—ญ์„ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด ๋„ฃ์–ด ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์„ ์ง€ํ–ฅ

2-3.ย ์ธ๋ฑ์Šค ๊ณ ์œ  ์Šค์บ”ย ย (Index unique scan)

๊ธฐ๋ณธ ํ‚ค๋‚˜ ์ธ๋ฑ์Šค๋กœ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹

์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šค์บ” ๋ฐฉ์‹ ์ค‘ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ์Šค์บ” ๋ฐฉ๋ฒ•

WHEREย ์ ˆ์— ์กฐ๊ฑด์„ ์ž‘์„ฑํ•˜์—ฌ ์‚ฌ์šฉ.

2-4.ย ์ธ๋ฑ์Šค ๋ฃจ์Šคย ์Šค์บ”ย ย (Index loose scan)

์ธ๋ฑ์Šค์˜ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋“ค๋งŒ ๊ณจ๋ผ ์Šค์บ”ํ•˜๋Š” ๋ฐฉ์‹. ์ธ๋ฑ์Šค ๋ฒ”์œ„ ์Šค์บ”์ฒ˜๋Ÿผ ๋„“์€ ๋ฒ”์œ„์— ์ „๋ถ€ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ 

WHERE ์ ˆ ์กฐ๊ฑด๋ฌธ ๊ธฐ์ค€์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์™€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ๊ตฌ๋ถ„ ๋’ค ๋ถˆํ•„์š”ํ•œ ์ธ๋ฑ์Šค ํ‚ค ๋ฌด์‹œ.

GROUP BY, MAX , MIN ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋˜๋ฉด ์ž‘๋™ , ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ์ธ๋ฑ์Šค์—์„œ ์ตœ๋Œ“๊ฐ’, ์ตœ์†Œ๊ฐ’ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์ด์— ํ•ด๋‹น

2-5.ย ์ธ๋ฑ์Šค ๋ณ‘ํ•ฉ ์Šค์บ”ย ย (Index merge scan)

ํ…Œ์ด๋ธ” ๋‚ด ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค๋“ค์„ ํ†ตํ•ฉํ•ด์„œ ์Šค์บ”ํ•˜๋Š” ๋ฐฉ์‹.

๊ฒฐํ•ฉ union , ๊ต์ฐจ intersection ๋ฐฉ์‹, ์ด๋“ค ๋ฐฉ์‹์€ ๋ชจ๋‘ ์‹คํ–‰ ๊ณ„ํš์œผ๋กœ ์ถœ๋ ฅ

๋ฌผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฐœ๋ณ„ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ๊ฐ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ์ธ๋ฑ์Šค ์ ‘๊ทผ ์‹œ๊ฐ„ ๋ช‡ ๋ฐฐ๋กœ ๊ฑธ๋ฆผ

</aside>