상세 컨텐츠

본문 제목

[SQLD] Index

RDBMS

by Wanderer Kim 2023. 5. 20. 21:40

본문

728x90

Index란?

인덱스는 데이터베이스에서 데이터 검색 성능을 향상시키는 자료 구조입니다. 집의 주소를 찾는 것처럼, 인덱스는 데이터 베이스에서 특정 데이터를 빠르게 찾는 방법을 제공합니다. 이를 통해 sql 쿼리 성능을 크게 향상시킬 수 있습니다.

 

인덱스의 작동 원리

인덱스틑 B-tree 또는 Hash와 같은 자료구조를 사용하여 데이터의 위치 정보를 저장합니다 .이를 통해 테이블의 전체 스캔이 아닌, 인덱스를 통해 직접 데이터를 접근하므로 데이터 검색이 빠르게 이루어집니다.

예를 들어, 고객 테이블에서 고객 ID를 기준으로 데이터를 찾는다고 가정해봅시다. 만약 인덱스가 없다면, 모든 레코드를 순차적으로 검색해야 하지만 인덱스가 있다면 인덱스를 통해 빠르게 데이터를 찾을 수 있습니다.

 

인덱스 생성

아래 쿼리를 이요하면 인덱스를 생성할 수 있습니다.

CREATE INDEX index_name
ON table_name(column_name);

인덱스 사용 시 주의점

  • 인덱스 오버헤드 : 인덱스는 데이터를 빠르게 찾는 데 도움이 되지만, 데이터 삽입, 수정, 삭제가 빈번하게 발생하는 테이블에 생성하면 인덱스 유지 비용이 높아집니다. 이로 인해 성능이 오히려 저하될 수 있습니다.
  • 선택도 : 인덱스는 고유한 값이 ㅁ낳은 열에 대해 가장 효과적입니다. 만약 성별과 같이 값의 종류가 매우 적은 열에 인덱스를 생성하면 인덱스의 효용성이 크게 떨어집니다.
  • 인덱스 크기 : 데이터베이스의 인덱스는 디스크 공간을 차지합니다. 따라서 필요 이상으로 인덱스를 만들면 디스크 공간이 부족해질 수 있습니다.

 

결론

sql 인덱스는 데이터 검색 성능을 향상시키는 훌륭한 도구입니다. 그러나 동시에, 인덱스 생성과 유지에는 비용이 들기 때문에 신중하게 사용해야 합니다.

반응형

'RDBMS' 카테고리의 다른 글

[SQLD] grant  (1) 2023.05.21
[SQLD] NVL  (0) 2023.05.20
[SQLD] savepoint  (0) 2023.05.14
[SQLD] TCL query  (0) 2023.05.14
[SQLD] COALESCE 함수  (0) 2023.05.08

관련글 더보기

댓글 영역