데이터베이스 인덱스란?
데이터베이스 인덱스는 책의 목차와 비슷한 역할이다
데이터베이스에서 원하는 데이터를 더 빠르게 찾을 수 있도록 도와주는 도구
인덱스를 사용하면 검색 속도를 크게 향상시킬 수 있으며, 이는 특히 대량의 데이터를 다룰 때 중요함
왜 인덱스를 사용하는가?
만약 인덱스가 없다면, 특정 레코드를 찾기 위해 모든 레코드를 하나씩 확인해야 함
하지만 인덱스를 사용하면 특정 컬럼의 값을 기준으로 데이터를 빠르게 찾아낼 수 있다
사전에서 특정 단어를 찾을 때,
앞에서 부터 한장씩 넘기는것이 아닌
'사과' 면 'ㅅ' 부분으로 바로 넘어가서 찾는것과 비슷한 이치
인덱스의 종류
- B-Tree 인덱스: 가장 일반적으로 사용되는 인덱스 타입
데이터를 트리 구조로 관리하여 빠르게 검색, 삽입, 삭제가 가능하다 대부분의 관계형 데이터베이스에서 기본 인덱스 타입으로 사용됨- B-Tree는 트리 구조로 데이터를 저장하여 검색 속도를 빠르게 함
- 책의 목차처럼 분기점을 따라가며 원하는 데이터를 효율적으로 찾을 수 있다
- 해시 인덱스: 해시 함수로 데이터를 빠르게 찾을 수 있도록 한다 특정 키에 대해 빠른 조회가 가능하지만 범위 검색은 지원하지 않음
- 해시 인덱스는 데이터를 특정 키에 대해 해시 값으로 매핑하여 빠르게 접근할 수 있게 한다
- 이는 특정 값을 정확히 찾는 데 유리하지만, 범위 검색에는 적합하지 않음
- 텍스트 인덱스: 대량의 텍스트 데이터를 검색할 때 유용
예를 들어 블로그나 뉴스 기사에서 특정 키워드를 검색할 때 사용됨- 텍스트 인덱스는 텍스트 데이터의 빠른 검색을 위해 최적화되어 있다
- 블로그나 뉴스 사이트와 같은 대량의 텍스트 기반 콘텐츠에서 특정 키워드를 쉽게 찾을 수 있게 해줌
인덱스의 단점
- 인덱스는 데이터를 빠르게 찾을 수 있도록 도와주지만,
인덱스를 추가하면 데이터 삽입, 수정, 삭제 작업의 성능이 저하될 수 있댜 - 인덱스를 유지하기 위해 데이터가 변경될 때마다 추가적인 작업이 필요하기 때문에
- 모든 컬럼에 인덱스를 만드는 것은 오히려 역효과를 낳는다
- 자주 사용되는 검색 조건이나 정렬 기준으로 인덱스를 설정하는 것이 좋음
'programming > database' 카테고리의 다른 글
데이터베이스 옵티마이저 (1) | 2024.12.01 |
---|---|
데이터베이스 파티셔닝 (1) | 2024.11.07 |
데이터베이스 Lock의 종류 (0) | 2024.10.26 |
데이터베이스 정규화 (0) | 2024.10.26 |
디비 데드락 (0) | 2024.10.19 |