About Web
  • ๐Ÿ“ปNetwork
    • OSI 7 Layer
    • TCP
    • Congestion Control
    • UDP
    • HTTP
    • HTTPS, TLS, SSL
    • HTTP Request & Response
    • URL vs URI vs URN
    • Load Balancing
    • DNS
    • NAT
    • DHCP
    • MAC
    • ARP
    • REST
    • Cookie, Session, JWT
    • Socket, WebSocket , Socket IO
    • CORS
    • CDN
    • PDU
    • gRPC vs tRPC
  • ๐Ÿ”งOperating System
    • Process vs Thread
    • File Descriptor
    • Thread-Safe
    • System Call
    • Context Switch
    • Signal
    • Deadlock
    • Mutex & Semaphore
    • Race Condition
    • Memory Management
    • Scheduler
    • CPU Scheduler
    • Memory Hierarchy
    • Cache Locality
    • Interrupt
    • IPC
    • Virtual Memory
    • Thrashing
    • Synchronous vs Asynchronous
    • RAID
    • CISC vs RISC
    • Byte Order
  • โ˜•JavaScript
  • ๐Ÿ’พDatabase
    • Index
    • Transaction
    • ACID
    • Normalization
  • ๐Ÿ“‘Web
    • XSS, CSRF, SQL Injection
Powered by GitBook
On this page
  • Index ๋ž€
  • Index์˜ ์žฅ์ 
  • Index์˜ ๋‹จ์ 
  • Index ์ž๋ฃŒ๊ตฌ์กฐ
  • ๋™์ž‘๋ฐฉ๋ฒ•
  1. Database

Index

PreviousDatabaseNextTransaction

Last updated 2 years ago

Index ๋ž€

Index๋ž€ ์ฑ…์˜ ๋ชฉ์ฐจ์™€ ๊ฐ™์€ ์ƒ‰์ธ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ๊ณต๊ฐ„์„ ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

Index์˜ ์žฅ์ 

๊ทธ๋ฆผ์—์„œ ๋ณด์ด๋“ฏ์ด index๋Š” ์ •๋ ฌ๋œ ํ˜•ํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ ์žˆ๊ธฐ์—, ์›ํ•˜๋Š” ๊ฐ’์„ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์–ด ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค.

์ฆ‰ ORDER BY ํ˜น์€ MIN/MAX ๊ฐ™์€ ๊ฒฝ์šฐ ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

Index์˜ ๋‹จ์ 

์ธ๋ฑ์Šค๊ฐ€ ํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•˜๊ธฐ์—, ์ด์— ๋™๋ฐ˜๋˜๋Š” ๋‹จ์ ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… ๋ฐ ๊ณต๊ฐ„ ํ•„์š” (๋Œ€๋žต 10%)

  2. ๋‚จ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒ

์ฆ‰ ํ•ญ์ƒ ์ •๋ ฌ๋˜์–ด ์žˆ๊ธฐ์—, INSERT, DELETE, UPDATE์™€ ๊ฐ™์€ ์ž‘์—…์ธ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค.

์ฆ‰ ๊ทœ๋ชจ๊ฐ€ ํฌ๊ณ , INSERT, UPDATE, DELETE ๋“ฑ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ WHERE, ORDER BY, JOIN๋“ฑ SELECT๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ํ…Œ์ด๋ธ”์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

Index ์ž๋ฃŒ๊ตฌ์กฐ

Hash Table

์ผ๋ฐ˜์ ์œผ๋กœ <key, value> ์Œ์„ ์ด๋ฃจ์–ด O(1)์˜ ๋งค์šฐ ๋น ๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, equal ์—ฐ์‚ฐ์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์–ด ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ์ •๋ ฌ๋˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ถ€๋“ฑํ˜ธ ์—ฐ์‚ฐ์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

B+ Tree

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

๋™์ž‘๋ฐฉ๋ฒ•

Index๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ SELECT ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ํŒ๋‹จํ•˜์—ฌ ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

์˜ตํ‹ฐ๋งˆ์ด์ €

  1. ์ธ๋ฑ์Šค๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฒŒ๋œ ๊ฒฝ์šฐ, Full Table Scan์„ ํ•˜๋ฉฐ ์ž์›์„ ์†Œ๋ชจํ•˜๋ฉฐ Index๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

  2. ๋‹ค์Œ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•œ ํ›„ ์กฐํšŒ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด, Index๋ฅผ ํ†ตํ•ด Location์„ ์‰ฝ๊ฒŒ ์ฐพ์€ ํ›„ TABLE์„ ์กฐํšŒํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

์ฐธ๊ณ 

๐Ÿ’พ
[Database] ์ธ๋ฑ์Šค(index)๋ž€?MangKyu's Diary
Logo
[DB] 11. ์ธ๋ฑ์Šค(Index) - (1) ๊ฐœ๋…, ์žฅ๋‹จ์ , B+Tree ๋“ฑRebro์˜ ์ฝ”๋”ฉ ์ผ๊ธฐ์žฅ
Logo
simple index example
simple table scanning comparison