[sql] 인덱스의 삭제 및 재생성

인덱스는 데이터베이스에서 효율적인 검색을 위해 사용되는 자료구조입니다. 하지만 때로는 인덱스를 재생성해야 하는 상황이 발생할 수 있습니다. 이 글에서는 SQL에서 인덱스를 삭제하고 재생성하는 방법에 대해 알아보겠습니다.

인덱스 삭제하기

인덱스를 삭제하기 위해서는 DROP INDEX 문을 사용합니다. 이 문법은 다음과 같습니다.

DROP INDEX [index_name] ON [table_name];

여기서 [index_name]은 삭제하려는 인덱스의 이름, [table_name]은 인덱스가 적용된 테이블의 이름입니다.

예를 들어, idx_customers라는 이름의 인덱스를 customers 테이블에서 삭제하려면 다음과 같이 입력합니다.

DROP INDEX idx_customers ON customers;

인덱스가 삭제되면 해당 테이블에서는 해당 인덱스를 사용할 수 없게 됩니다.

인덱스 재생성하기

인덱스를 재생성하는 경우에는 CREATE INDEX 문을 사용합니다. 이 문법은 다음과 같습니다.

CREATE INDEX [index_name] ON [table_name] ([column_list]);

여기서 [index_name]은 재생성할 인덱스의 이름, [table_name]은 인덱스를 적용할 테이블의 이름, [column_list]는 인덱스를 생성할 컬럼(들)의 목록입니다.

예를 들어, idx_customers라는 이름의 인덱스를 customers 테이블의 name 컬럼에 대해 재생성하려면 다음과 같이 입력합니다.

CREATE INDEX idx_customers ON customers (name);

인덱스를 재생성하면 해당 테이블에서 다시 해당 인덱스를 사용할 수 있게 됩니다.

인덱스 삭제 및 재생성 예제

다음은 products 테이블에서 idx_price라는 이름의 인덱스를 삭제하고, price 컬럼에 대해 인덱스를 재생성하는 예제입니다.

-- 인덱스 삭제
DROP INDEX idx_price ON products;

-- 인덱스 재생성
CREATE INDEX idx_price ON products (price);

위 예제는 products 테이블에서 idx_price라는 이름의 인덱스를 삭제한 후, price 컬럼에 대해 다시 인덱스를 생성합니다.

참고 자료