[DB] Index

딩딩당당·2023년 2월 22일
0

Index
어떤 데이터가 어디 위치하였는지 위치 정보를 가진 주소록

인덱스를 사용하는 이유
우리가 일반적으로 SELECT문으로 데이터 조회를 할 때 DB 서버 프로세스는 메모리를 먼저 확인한다. 메모리에는 자주 사용되는 테이블이 캐싱되어 저장되는데 원하는 데이터가 메모리에 없는 경우에는 모든 블록 테이블에서 조회( Tabel Full Scan ) 하게된다. Tabel Full Scan을 막기 위해 데이터의 주소록 개념인 인덱스를 생성해서 데이터를 관리하는 것이다. 데이터의 주소를 바로 찾아 조회하기 때문에 특정 데이터의 UPDATE나 DELETE같은 경우도 속도 향상을 기대할 수 있다.

index의 장단점
1. 장점

  • 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다.
  • 전반적인 시스템의 부하를 줄일 수 있다.
  1. 단점
  • 인덱스를 관리하기 위해 따로 저장공간이 필요하다.
  • 인덱스를 관리하기 때문에 관리포인트가 늘어난다.
  • 인덱스를 잘못 사용할 경우 오히려 성능이 저하될 수 있다.

만약 CREATE, DELETE, UPDATE가 빈번한 속성에 인덱스를 걸게 되면 인덱스의 크기가 비대해져서 성능이 오히려 저하되는 역효과가 발생할 수 있다. 그러한 이유 중 하나는 DELETE와 UPDATE 연산 때문이다. 앞에서 설명한대로, UPDATE와 DELETE는 기존의 인덱스를 삭제하지 않고 '사용하지 않음' 처리를 해준다고 하였다. 만약 어떤 테이블에 UPDATE와 DELETE가 빈번하게 발생된다면 실제 데이터는 10만건이지만 인덱스는 100만 건이 넘어가게 되어, SQL문 처리 시 비대해진 인덱스에 의해 오히려 성능이 떨어지게 될 것이다.

profile
자바공부해요흑흑

0개의 댓글