๐Ÿ”™๋’ค๋กœ๊ฐ€๊ธฐ

B-Tree ๊ตฌ์กฐ

๋Œ€๋ถ€๋ถ„์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ธ๋ฑ์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ B-Tree ๋˜๋Š” ๊ทธ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค. B-Tree๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌ๋œ ํ˜•ํƒœ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ, ๋…ธ๋“œ์™€ ๋…ธ๋“œ ์‚ฌ์ด๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

์˜ˆ์‹œ: ์ „ํ™”๋ฒˆํ˜ธ๋ถ€

์ „ํ™”๋ฒˆํ˜ธ๋ถ€๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด, ์ด๋ฆ„์œผ๋กœ ์‚ฌ๋žŒ์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ๋•Œ ์ฒซ ๊ธ€์ž๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ฐพ์œผ๋ฉด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€๊ฐ€ ์•ŒํŒŒ๋ฒณ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด, 'M'์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„์„ ์ฐพ์„ ๋•Œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋’ค์งˆ ํ•„์š” ์—†์ด, ์ค‘๊ฐ„์ฏค์—์„œ๋ถ€ํ„ฐ ์ฐพ์œผ๋ฉด ๋˜๋‹ˆ๊นŒ ๋” ๋น ๋ฅด๋‹ค.

์ฃผ์š” ์นผ๋Ÿผ ์„ ํƒ

"์ฃผ์š” ์นผ๋Ÿผ"์ด๋ผ๋Š” ๊ฑด ์ž์ฃผ ๊ฒ€์ƒ‰๋˜๊ฑฐ๋‚˜, WHERE, JOIN, ORDER BY ๋“ฑ์˜ ์—ฐ์‚ฐ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์นผ๋Ÿผ์„ ๋งํ•œ๋‹ค. ์ด๋Ÿฐ ์นผ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์–ด๋‘๋ฉด, ํ•ด๋‹น ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ฒ€์ƒ‰ ์†๋„ ํ–ฅ์ƒ ์›๋ฆฌ

  1. ์ตœ์ ์˜ ๊ฒฝ๋กœ ํƒ์ƒ‰: B-Tree ๊ตฌ์กฐ์—์„œ ๋ฃจํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋…ธ๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„ ๋‚ด๋ ค๊ฐ„๋‹ค.
  2. ๋ถ„ํ•  ์ •๋ณต: ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒ€์ƒ‰ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋„ ์ž‘์•„์ง„๋‹ค.
  3. ๋ฐ์ดํ„ฐ ์ •๋ ฌ: ์ธ๋ฑ์Šค ์นผ๋Ÿผ์ด ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด ๋น ๋ฅด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚˜์ด๊ฐ€ 20~30์ธ ์‚ฌ๋žŒ์„ ์ฐพ๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉ๋ฉด ํ•ด๋‹น ๋ฒ”์œ„๋งŒ ๋น ๋ฅด๊ฒŒ ์Šค์บ”ํ•œ๋‹ค.

์ฝ”๋“œ ์˜ˆ์‹œ: MySQL

-- 'age' ์นผ๋Ÿผ์— ์ž์ฃผ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์„ ํ•œ๋‹ค๋ฉด, 'age' ์นผ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑ
CREATE INDEX idx_age ON users (age);

์ฃผ์˜์‚ฌํ•ญ

์ธ๋ฑ์Šค๊ฐ€ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ธ๋ฑ์Šค๋„ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ