반응형
INDEX란?
RDBMS에서 검색 속도를 높이기 위한 데이터베이스 객체입니다.
INDEX는 색인입니다. 특정 TABLE의 칼럼을 색인화 하여 검색할 때 TABLE의 레코드를 전부 다 확인하는 것이 아니라
색인화 되어있는 INDEX파일을 검색하여 검색 속도를 빠르게 합니다.
INDEX 사용 이유는?
SQL 서버에서 테이블을 만들고 데이터를 추가, 수정 , 삭제할 때 데이터의 레코드는 내부적으로 아무런 순서 없이 저장이 됩니다. 데이터 저장 영역에서는 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 전체 데이터 베이스를 처음부터 끝까지 다 읽어서 검색조건에 맞게 찾게됩니다. 이런 식의 검색 방법을 Full Scan이라고 하는데, 양이 엄청나게 많은 테이블에서 데이터를 불러올 때 Full Scan을 하게 되면 처리 성능이 떨어집니다.
고로 Index는 데이터를 검색할 때 빠르게 찾기 위해 사용된다.
INDEX의 장단점
장점 -
- 무조건은 아니지만 검색 속도를 향상할 수 있습니다.
- 인덱스를 생성 시에는 where절과 join, order by 등과 관련된 칼럼 중 사용빈도가 높고 키값의 선별도가 좋은 칼럼에 사용해야 합니다. 반대로 사용빈도가 낮고 칼럼의 선별도가 좋지 않은 (값이 True /False 같은 것들) 칼럼의 경우에는 인덱스를 사용하지 않는 것이 좋습니다
- 테이블이 작거나 자주 갱신이 필요한 칼럼들에도 사용하지 않는 것이 좋습니다.
단점 -
- DB의 10% 정도의 공간이 요구됩니다.
- 인덱스를 생성하는 시간이 크게 요구됩니다.
- DB의 변경 작업이 잦으면 성능이 저하됩니다.
반응형
'DB' 카테고리의 다른 글
[DB 기초] 데이터베이스 정규화를 왜 알아야할까요? (0) | 2020.09.14 |
---|---|
[DB] SQL Constraint란? (0) | 2020.09.02 |
[DB] Trigger 트리거 개요 및 장단점 (0) | 2020.09.01 |
[DB] Procedure 프로시저 개요 및 장단점 (1) | 2020.09.01 |
[DB] DBMS란 무엇일까요? (0) | 2020.08.27 |