반응형

INDEX란?

RDBMS에서 검색 속도를 높이기 위한 데이터베이스 객체입니다.

INDEX는 색인입니다. 특정 TABLE의 칼럼을 색인화 하여 검색할 때 TABLE의 레코드를 전부 다 확인하는 것이 아니라

색인화 되어있는 INDEX파일을 검색하여 검색 속도를 빠르게 합니다.

 

 

INDEX 사용 이유는?

SQL 서버에서 테이블을 만들고 데이터를 추가, 수정 , 삭제할 때 데이터의 레코드는 내부적으로 아무런 순서 없이 저장이 됩니다. 데이터 저장 영역에서는 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 전체 데이터 베이스를 처음부터 끝까지 다 읽어서 검색조건에 맞게 찾게됩니다. 이런 식의 검색 방법을 Full Scan이라고 하는데, 양이 엄청나게 많은 테이블에서 데이터를 불러올 때 Full Scan을 하게 되면 처리 성능이 떨어집니다. 

고로 Index는 데이터를 검색할 때 빠르게 찾기 위해 사용된다.

 

INDEX의 장단점

장점 - 

  • 무조건은 아니지만 검색 속도를 향상할 수 있습니다.
    • 인덱스를 생성 시에는 where절과 join, order by 등과 관련된 칼럼 중 사용빈도가 높고 키값의 선별도가 좋은 칼럼에 사용해야 합니다. 반대로 사용빈도가 낮고 칼럼의 선별도가 좋지 않은 (값이 True /False 같은 것들) 칼럼의 경우에는 인덱스를 사용하지 않는 것이 좋습니다
    • 테이블이 작거나 자주 갱신이 필요한 칼럼들에도 사용하지 않는 것이 좋습니다.

단점 - 

  • DB의 10% 정도의 공간이 요구됩니다.
  • 인덱스를 생성하는 시간이 크게 요구됩니다.
  • DB의 변경 작업이 잦으면 성능이 저하됩니다.
반응형

+ Recent posts