본문 바로가기
MySQL

[SQL] 인덱스

by 스응 2023. 3. 7.
728x90
728x90

인덱스 (Index, 색인)

  - DB에서 데이터 검색 속도를 향상시키기 위해 사용하는 구조

  - PRIMARY KEY, UNIQUE 선언 시 자동으로 인덱스가 생성됨

 

#  장점

  - 특정 컬럼에 대해 정렬된 값을 가짐

      → 해당 컬럼의 값을 이용하여 검색을 수행할 때, 빠르게 검색 가능

  - 대량의 데이터를 처리할 때 효율적임

      (인덱스가 없다면 풀 스캔 : 하나하나 스캔하며 검색해서 시간이 오래 걸림)

#  단점

  - DB 내에 별도로 저장되어 있음

      → 추가적인 디스크 공간을 필요로 함

  - 인덱스를 생성할 때 데이터를 정렬하는 작업을 필요로 함

      → 인덱스 생성/수정 시 시간이 소요될 수 있음

 

  ⇒ 필요한 경우에만 적절하게 설계해서 사용할 것

 

 


테이블 생성 시점에 인덱스 추가

CREATE TABLE 테이블명 (
    컬럼명1 자료형 [제약조건],
    ...,
    INDEX 인덱스명 (컬럼명) -- 해당 컬럼에 인덱스 추가
);

 

기존 테이블에 인덱스 추가

ALTER TABLE 테이블명
ADD INDEX 인덱스명 (컬럼명); -- 해당 컬럼에 인덱스 추가

 

인덱스 삭제

DROP INDEX 인덱스명;
320x100
반응형

댓글