인덱스는 데이터베이스에서 효율적인 검색을 위해 사용되는 자료구조입니다. 하지만 때로는 인덱스를 재생성해야 하는 상황이 발생할 수 있습니다. 이 글에서는 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
컬럼에 대해 다시 인덱스를 생성합니다.
참고 자료
-
[SQL CREATE INDEX 문 w3schools](https://www.w3schools.com/sql/sql_create_index.asp) -
[SQL DROP INDEX 문 w3schools](https://www.w3schools.com/sql/sql_drop_index.asp)