DataBase

RDBMS 인덱스(INDEX) 빠른 검색을 위한

Yukart 2023. 7. 20. 21:26
반응형

개요

인덱스

인덱스를 사용하면 데이터베이스에서 데이터를 검색할 때 테이블의 모든 레코드를 검색하지 않아도 됩니다. 대신, 인덱스를 사용하여 검색할 컬럼 값이 일치하는 레코드만 검색하면 됩니다. 이를 통해 검색 속도가 증가하게 되어, 대규모 데이터베이스에서도 빠른 검색이 가능해집니다. 그러나, 인덱스는 테이블에 대한 추가적인 저장 공간을 필요로 하며, 인덱스를 생성하고 유지하는데도 자원이 소비됩니다. 때문에, 적절한 인덱스를 설정하는 것이 중요합니다.

INSERT, UPDATE, DELETE

직관적으로 SELECT 쿼리를 할 때 유리한 것은 감이 옵니다. 하지만 INSERT, UPDATE, DELETE 의 경우에는 어떤 일이 벌어질까요?

  • INSERT
    • 새로운 Raw에 대한 인덱스를 추가하며 해당 Raw가 INSERT 됩니다.
  • UPDATE
    • 기존의 인덱스를 해제하고, UPDATE가 완료된 RAW를 다시 연결 시킵니다.
  • DELETE
    • 삭제하는 RAW에 연결된 인덱스를 해제합니다.

INDEX가 유리한 경우

  • 규모가 비교적 큰 테이블
  • SELECT 쿼리의 비율이 높은 테이블
  • 복잡한 SELECT 쿼리의 비율이 높은 테이블
  • 중복된 데이터가 적은 테이블

INDEX가 적용 되지 않는 경우

즉 INDEX 없이 DB Full Scan이 되어버리는 경우 입니다.

  • LIKE 검색 시 처음 %를 사용한 경우
SELECT * FROM user_table WHERE user_name LIKE '%철수'
  • IS NULL & NOT NULL 문을 사용한 경우
  • 부정 연산자를 사용하는 경우
  • 기타 인덱스로 지정된 컬럼을 변형하는 행위
오늘은 어렴풋이 알고는 있었지만 고마웠던 INDEX에 대해 자세히 알아봤습니다. 물론 INDEX 의 자료구조 등 더 깊이 다룰 내용이 많지만 다음 포스팅에서 다루도록 하겠습니다.
반응형

'DataBase' 카테고리의 다른 글

오라클 DCL에 관하여  (0) 2022.01.11