코딩요
쉬운코드 기술 블로그
코딩요
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 개발자로 성장하기 (11)
    • 컴공 (25)
      • 운영체제 (12)
      • 알고리즘 (1)
      • 데이터베이스 (11)
      • 네트워크 (1)
    • 쉬운코드 (15)
      • 쉬운코드 소개 (6)
      • 쉬운코드 영상 보는 법 (3)
      • 쉬운코드 정정 보고서 (1)
      • 쉬운코드 스토리 (4)
      • 기타 이것저것 (1)
    • 면접 tip (3)

공지사항

  • 아이폰 앱에서는 슈퍼땡스 보내지 말아주세요ㅠㅠ
  • 쉬운코드 멤버십을 소개합니다
  • 쉬운코드 운영 철학

인기 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
코딩요
컴공/데이터베이스

DB 테이블에 인덱스(index)가 매우 중요한 이유

DB 테이블에 인덱스(index)가 매우 중요한 이유
컴공/데이터베이스

DB 테이블에 인덱스(index)가 매우 중요한 이유

2022. 12. 10. 15:55

 

만약 table에 인덱스를 걸지 않으면 어떻게 될까?

 

원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야 한다

 

full scan 이란?

 

row를 하나하나씩 모두 확인하는 것을 의미하며, table scan 이라고도 부른다

 

full scan은 당연히 시간이 오래 걸리기 때문에 서비스에 좋지 않은 영향을 끼친다

 

 

 

 

아래와 같이 ARTICLE 테이블이 있다고 가정해보자

article_id writer_id title created_at read_cnt comment_cnt
1 aaa ... ... ... ...
2 bbb ... ... ... ...
... ... ... ... ... ...

 

 

 

만약 codingyo가 작성한 글을 찾고 싶다면 쿼리문은 아래와 같다

 

SELECT * FROM article WHERE writer_id = 'codingyo';

 

이때 writer_id 컬럼에 인덱스가 걸려있지 않다면 ARTICLE 테이블을 처음부터 끝까지 확인하면서 writer_id가 dingyo인 row를 찾아야 한다

 

이렇게 동작하면 성능이 매우 비효율적이며, 테이블에 데이터가 많아질수록 더 많은 탐색 시간이 걸릴 것이다

 

결국 서비스의 퍼포먼스에 악영향을 주게 된다

 

 

 

 

 

 

 

 

 

DB table에 인덱스가 걸려있다면?

 

원하는 데이터를 매우 빠르게 찾을 수 있다

 

가령, writer_id에 인덱스가 걸려있다면, full scan을 할 필요가 없으며 index scan을 통해 매우 빠르게 codingyo가 작성한 글들을 찾을 수 있다

 

 

 

 

 

그렇다면 개발자는 무엇을 해야 하는가?

 

* 인덱스의 종류와 동작 방식을 이해하고 있어야 한다

 

* 실제로 조회되는 필드에 적절한 인덱스를 걸어줘야 한다

 

 

 

 

 

 

 

쉬운코드는 본질에 충실합니다

 

 

👉 인덱스와 관련된 자세한 내용을 배우고 싶다면?

 

 

 

 

 
저작자표시 비영리 변경금지 (새창열림)
  •  
  • 만약 table에 인덱스를 걸지 않으면 어떻게 될까?
  • DB table에 인덱스가 걸려있다면?
  • 그렇다면 개발자는 무엇을 해야 하는가?
  • 쉬운코드는 본질에 충실합니다
'컴공/데이터베이스' 카테고리의 다른 글
  • [DB] partitioning (파티셔닝 뜻과 종류, 사례)
  • [DB] transaction isolation level(격리 수준) 존재 이유
  • [DB] key와 index의 차이
  • [DB] key와 functional dependency 차이
코딩요
코딩요
8년차 백엔드 개발자가 이해하기 쉽게 설명합니다. 배워서 남주는 블로그! 이해하기 쉬운 기술 블로그! 쉬운코드입니다 :)

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.