인덱스(index)
데이터베이스 인덱스는 데이터 검색을 빠르게 하기 위해 사용되는 데이터베이스 관리 시스템(DBMS)의 구조이다. 인덱스는 특정 정보를 빠르게 찾을 수 있도록 도와주는 포인터의 집합으로 생각할 수 있다. 데이터베이스에 데이터가 많을 때, 인덱스는 효율적인 데이터 검색을 가능하게 하여 성능을 크게 향상시킬 수 있다.
인덱스의 원리
인덱스는 책의 색인과 비슷한 원리로 작동한다. 책 뒤에 있는 색인에서 특정 단어를 찾으면, 그 단어가 책의 어느 페이지에 있는지 알려주는 것처럼, 데이터베이스 인덱스도 특정 값이나 범위의 값이 데이터베이스의 어느 위치에 있는지 빠르게 찾아준다. 🫢
인덱스의 종류
- 단일 인덱스 (Single-Column Index)
- 특정 한 컬럼을 기준으로 자주 검색하거나 정렬할 때 사용한다.
- 인덱스가 적용된 컬럼의 데이터는 인덱스 구조(보통 B-트리)에 의해 정렬된다. 쿼리가 실행될 때, 데이터베이스는 전체 테이블을 스캔하는 대신 인덱스를 사용하여 데이터를 빠르게 찾는다.
- 복합 인덱스 (Composite Index)
- 여러 컬럼을 동시에 검색 조건으로 사용할 때 유용하다. 예를 들어, 이름과 성을 동시에 검색하는 경우, 이름과 성에 복합 인덱스를 설정할 수 있다.
- 유니크 인덱스 (Unique Index)
- 중복된 값을 허용하지 않는 인덱스로 이를 통해 데이터의 무결성을 보장할 수 있다.
- 데이터의 무결성을 보장하지만, 데이터 삽입이나 갱신 시 추가적인 비용이 발생할 수 있다.
- 전문 검색 인덱스 (Full-Text Index)
- 대량의 텍스트 데이터에서 텍스트 검색을 자주 수행할 때 사용한다. 예를 들어, 뉴스 기사나 제품 설명과 같은 긴 텍스트 필드에서 키워드 검색을 수행할 때 유용하다.
인덱스의 장단점
- 인덱스의 장점
- 검색 속도의 향상 데이터베이스 테이블의 전체를 스캔하지 않고도 원하는 데이터를 빠르게 찾을 수 있다.
- 정렬된 데이터의 효율적 접근: 데이터를 정렬된 상태로 유지하여, 범위 검색과 정렬 쿼리를 빠르게 처리할 수 있다.
- 인덱스의 단점
- 추가적인 저장 공간 사용: 인덱스는 데이터베이스의 저장 공간을 추가로 사용한다.
- 유지 관리 비용: 삽입, 삭제, 수정 작업이 발생할 때마다 인덱스도 갱신되어야 하므로 성능 저하가 발생할 수 있다.