본문 바로가기
컴퓨터

👨‍💻 [DB] DB 에서 Index 의 역할과 장단점은 어떻게 되나요?

by 밝음의기둥 2025. 3. 11.
반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

DB 에서 Index 의 역할과 장단점은 어떻게 되는지 간략히 알아보았습니다.


질문 >

DB 에서 Index 의 역할과 장단점은 어떻게 되나요?

답변 >

DB에서 Index의 역할

Index(인덱스)는 데이터베이스에서 검색 성능을 향상시키기 위한 자료구조입니다. 인덱스는 책의 목차나 색인처럼 특정 열(Column)에 대한 빠른 조회를 가능하게 해줍니다. 데이터베이스 테이블에서 원하는 데이터를 더 빠르게 찾을 수 있도록 도와주며, 일반적으로 B-Tree 또는 Hash 등의 구조로 구현됩니다.


Index의 장점

  1. 검색 속도 향상
    • WHERE 조건을 사용한 검색 시, 테이블의 모든 데이터를 스캔하는 Full Table Scan을 줄여 성능을 향상시킵니다.
    • 예: SELECT * FROM users WHERE email = 'test@example.com'; → email에 인덱스가 있으면 해당 값을 빠르게 찾아낼 수 있음.
  2. 정렬 속도 향상 (ORDER BY, GROUP BY 최적화)
    • 인덱스를 활용하면 정렬(ORDER BY)이나 그룹화(GROUP BY) 연산이 빨라질 수 있습니다.
    • 예: SELECT * FROM products ORDER BY price; → price에 인덱스가 있으면 정렬이 최적화됨.
  3. 조인(Join) 성능 향상
    • 인덱스를 사용하면 테이블 간 조인을 수행할 때 빠르게 매칭할 수 있습니다.
    • 예: SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id; → customer_id 또는 id 컬럼에 인덱스가 있으면 조인이 빠름.

Index의 단점

  1. 데이터 삽입/수정/삭제 성능 저하
    • 데이터를 추가(INSERT)하거나 수정(UPDATE) 또는 삭제(DELETE)할 때, 인덱스도 함께 갱신해야 하므로 성능이 저하될 수 있습니다.
    • 예: INSERT INTO users (name, email) VALUES ('John', 'john@example.com'); → email에 인덱스가 있으면 인덱스 트리도 수정해야 하므로 느려질 수 있음.
  2. 저장 공간 추가 사용
    • 인덱스는 테이블과 별도로 저장되므로 추가적인 디스크 공간이 필요합니다.
    • 특히 여러 개의 인덱스를 만들 경우, 스토리지 사용량이 급격히 증가할 수 있음.
  3. 잘못된 인덱스 사용 시 성능 저하
    • 너무 많은 인덱스를 만들면 오히려 쿼리 최적화가 어려워지고, 실행 계획이 비효율적으로 동작할 수도 있음.
    • 불필요한 인덱스는 삭제하는 것이 성능 최적화에 도움이 됨.

Index 사용 시 고려할 점

  • 자주 검색하는 컬럼에만 인덱스를 생성 (WHERE, JOIN, ORDER BY 등에 자주 사용되는 컬럼)
  • 적절한 인덱스 개수 유지 (너무 많으면 성능 저하, 너무 적으면 검색 속도 저하)
  • 업데이트가 잦은 테이블에 불필요한 인덱스 최소화
  • Composite Index(복합 인덱스) 활용 (여러 컬럼을 조합한 인덱스를 사용하여 효율적인 검색 가능)

인덱스를 잘 활용하면 데이터베이스 성능을 크게 향상시킬 수 있지만, 적절한 설계가 중요합니다! 😊



🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리(Willee) 입니다. 📢 위로그@WiLog 는 자기계발을 목적으로 하는 채널 입니다. 📢 오늘도 즐겁게~ 자신을 위한 계발을 함께 해보아요~ d^_^b 📌

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형