MySQL에서는 다양한 종류의 인덱스를 지원합니다.
각 인덱스 종류는 특정한 상황 또는 요구에 따라 선택하여 사용할 수 있습니다. 주요한 인덱스 종류에 대해 예시를 포함하여 자세히 설명해보겠습니다.
1. B-Tree 인덱스:
B-Tree(밸런스 트리) 인덱스는 가장 일반적인 인덱스 유형입니다.
이진 트리의 변형으로 데이터를 정렬된 형태로 저장하여 범위 검색, 정렬된 결과 반환, 다중 열 인덱스 등 다양한 기능을 지원합니다.
B-Tree 인덱스는 기본적으로 자동으로 생성됩니다.
2. 해시 인덱스:
해시 인덱스는 해시 함수를 사용하여 데이터를 저장하는 인덱스입니다.
해시 인덱스는 등호(=) 연산을 통한 검색에 특화되어 있으며, 빠른 검색 속도를 제공합니다.
예를 들어, 전화번호와 같이 고유한 값에 대해 해시 인덱스를 생성할 수 있습니다.
하지만 범위 검색이나 정렬된 결과 반환에는 적합하지 않습니다.
3. 전문 텍스트 인덱스:
전문 텍스트 인덱스는 대용량의 텍스트 데이터를 검색하기 위한 인덱스입니다.
이 인덱스는 단어 단위로 텍스트를 색인화하고, 전문 검색 쿼리를 지원하여 특정 단어나 구문의 일치도를 기반으로 결과를 반환합니다.
전문 텍스트 인덱스는 FULLTEXT 인덱스 유형으로 제공되며, 특정 열에 대해 수동으로 생성해야 합니다.
MySQL에서는 일부 인덱스가 자동으로 생성될 수도 있습니다. 일반적으로 다음과 같은 경우에 자동 인덱스가 생성됩니다:
1. 기본 키(primary key) 또는 고유(unique) 제약 조건을 가지는 열은 자동으로 해당 제약 조건에 대한 인덱스가 생성됩니다.
2. 외래 키(foreign key) 관계를 정의한 열은 자동으로 해당 관계에 대한 인덱스가 생성됩니다.
3. MySQL에서 자동으로 생성하는 인덱스는 쿼리 실행 계획을 기반으로 결정되며, 데이터베이스 엔진에 의해 최적화될 수 있습니다.
자동으로 생성되는 인덱스는 일반적으로 일반적인 사용 사례에 대해 잘 작동하지만, 특정 상황에서는 수동으로 인덱스를 생성하는 것이 더 효과적일 수도 있습니다. 따라서
데이터베이스 개발자는 실행 계획을 분석하고 필요에 따라 인덱스를 수동으로 생성하고 관리해야 합니다.
'SQL > MYSQL' 카테고리의 다른 글
[MYSQL] 인덱스가 필요한 경우와 필요 없는 경우 (0) | 2023.06.15 |
---|---|
[MYSQL] 인덱스의 성능 비교하기 (0) | 2023.06.15 |
[MYSQL] 인덱스 생성, 변경, 삭제 방법 (0) | 2023.06.13 |
[MYSQL] 인덱스의 내부 작동에 대한 설명 (0) | 2023.06.13 |
[MYSQL] 인덱스의 개념 설명 (0) | 2023.06.13 |
[MYSQL] 테이블스페이스 예제 및 사용 방법 (0) | 2023.06.12 |
[MYSQL] 뷰 예시 및 사용 방법 (0) | 2023.06.12 |
[MYSQL] 테이블 예시 및 사용 방법 (0) | 2023.06.12 |