인덱스(INDEX)란?
인덱스(INDEX)란 검색 속도를 높이기 위해 사용하는 하나의 기술이다.
해당 테이블의 컬럼을 색인화해 검색 시 해당 테이블의 레코드를 FULL SCAN 하는 게 아니라 색인화되어 있는 인덱스 파일을 검색하여
검색을 빠르게 한다.
쉽게 예를 들면, 영어단어사전에서 'GRADE'라는 단어를 찾아야 한다고 가정했을때,
만약 영어 단어 순서가 알파벳 순서로 나와있다면 'BLUE' 라는 단어를 찾기는 수월하다. 'B'의 알파벳 순서를 확인한 후 'B'로 시작하는 단어가 나오는 단락부터 찾으면 되니까
하지만 영어 단어의 순서가 알파벳 순서가 아닌 한글 뜻의 가나다 순서로 정렬이 되어 있다면 어떻게 찾아야 할까?
아마도 사전의 1페이지부터 'BLUE' 가 나올 때까지 한 단어 한 단어 찾아봐야 할 것이다. 시간이 오래 걸린다.
이 문제를 해결하기 위해 이 영어 단어 사전은 색인집이라는 별도 부록을 내놓았다. 별도 부록에는 알파벳 순서대로 단어가 나열되어 있고 해당 단어가 영어단어 사전에서 몇 페이지에 나오는지 정리되어 있다. 그렇다면 이 별도 부록을 보고 'BLUE' 단어가 영어단어사전 안에 몇 페이제 있는지 빠르게 찾은 후, 영어단어 사전에서 해당 페이지를 한 번에 펼쳐보면 된다. 그럼 찾는 속도가 매우 빠를 것이다
여기서 영어단어사전을 정렬이 되어있지 않은 테이블이라고 한다면, 별도 부록 색인집이 '인덱스'라고 보면 된다.
인덱스(INDEX) 장점과 단점
*장점
① 키(Key)값을 기초로 하여 테이블에서 검색과 정렬 속도를 향상 시킨다.
② 질의나 보고서에서 그룹화 작업의 속도를 향상시킨다.
③ 테이블행의 공유성을 강화할 수 있다.
④ 여러 필드로 이루어진 인덱스를 사용하면 첫 필드 값이 같은 레코드로 구분할 수 있다.
*단점
① .mdb 파일 크기가 늘어난다.
② 여러 사용자 응용 프로그램에서의 여러 사용자가 한 페이지를 동시에 수정할 수 있는 병행성이 줄어든다.
③ 인덱스 된 필드에서 데이터를 업데이트하거나, 레코드를 추가 또는 삭제할 때 성능이 떨어진다. (위 주의사항 참고)
④ 인덱스가 데이터베이스 공간을 차지해 추가적인 공간이 필요해진다.
⑤ 인덱스를 생성하는데 시간이 많이 소요 될 수 있다.
※ 참고사이트
'DATA > Oracle data bace (DBeaber)' 카테고리의 다른 글
오라클 데이터 베이스 6일차 (#3 조인함수) (0) | 2021.11.21 |
---|---|
오라클 데이터 베이스 6일차 (#2 집합 연산자) (0) | 2021.11.21 |
오라클 데이터 베이스 6일차 (#1 집계함수) (0) | 2021.11.21 |
오라클 데이터 베이스 5,6일차 (#3 변환 함수) (0) | 2021.11.21 |
오라클 데이터 베이스 5일차 (#2 날짜함수) (0) | 2021.11.20 |