PK와 FK와 마찬가지로 index 또한 막연하게 사용하면 쿼리 속도가 빨라진다 라는 생각만 가지고 있던 내용이기 때문에 index란 무엇인지 알아보려고 한다.

INDEX란?
RDBMS에서 검색 속도를 높이기 위한 데이터베이스 객체입니다.
INDEX는 색인입니다. 특정 TABLE의 칼럼을 색인화 하여 검색할 때 TABLE의 레코드를 전부 다 확인하는 것이 아니라
색인화 되어있는 INDEX파일을 검색하여 검색 속도를 빠르게 합니다.
INDEX 사용 이유는?
데이터 저장 영역에서는 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 전체 데이터 베이스를 처음부터 끝까지 다 읽어서 검색조건에 맞게 찾게됩니다. 이런 식의 검색 방법을 Full Scan이라고 하는데, 양이 엄청나게 많은 테이블에서 데이터를 불러올 때 Full Scan을 하게 되면 처리 성능이 떨어집니다. 
고로 Index는 데이터를 검색할 때 빠르게 찾기 위해 사용된다.
장점
  • 무조건은 아니지만 검색 속도를 향상할 수 있습니다.
    - 인덱스를 생성 시에는 where절과 join, order by 등과 관련된 칼럼 중 사용빈도가 높고 키값의 선별도가 좋은 칼럼에 사용해야 합니다. 반대로 사용빈도가 낮고 칼럼의 선별도가 좋지 않은 (값이 True /False 같은 것들) 칼럼의 경우에는 인덱스를 사용하지 않는 것이 좋습니다
    - 테이블이 작거나 자주 갱신이 필요한 칼럼들에도 사용하지 않는 것이 좋습니다.

 

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

출처 : https://runcoding.tistory.com/33

 

 

 

 

'학습 > 이론' 카테고리의 다른 글

Class란?  (0) 2023.05.21
스토어드 프로시저  (0) 2023.04.05
PK와 FK  (0) 2023.04.04
쿠키와 세션  (0) 2023.04.04
JWT  (0) 2023.04.04

+ Recent posts