DROP INDEX
DROP INDEX는 데이터베이스에서 인덱스를 제거해요. 기반이 되는 테이블과 데이터에는 영향이 없어요.
출처: 문서
본문
데이터베이스에서 인덱스를 제거해요. 기반이 되는 테이블과 그 데이터는 영향받지 않아요.
문법
DROP INDEX [IF EXISTS] [schema-name.]index-name;
설명
DROP INDEX는 이전에 만든 인덱스를 제거해요. 인덱스가 삭제되면 쿼리 플래너는 더 이상 그 인덱스를 쿼리 최적화에 쓸 수 없어요. 테이블 데이터는 변하지 않아요.
매개변수
| 매개변수 | 설명 |
|---|---|
IF EXISTS |
인덱스가 존재하지 않을 때 오류를 막아줘요. 인덱스가 없으면 문은 아무 것도 하지 않아요. |
schema-name |
인덱스가 들어 있는 붙은(attached) 데이터베이스 이름. 생략하면 main 데이터베이스 |
index-name |
삭제할 인덱스 이름. |
동작
- 명시적으로 만든 인덱스만 삭제할 수 있어요. PRIMARY KEY와 UNIQUE 제약 때문에 자동으로 만들어진 인덱스는 직접 삭제할 수 없어요 — 테이블을 삭제하거나 ALTER TABLE을 쓰세요.
- 인덱스를 삭제하면 그 인덱스에 의존하던 쿼리의 성능이 떨어질 수 있지만, 정확성에는 영향이 없어요.
예제
인덱스 삭제하기
DROP INDEX idx_users_email;
존재할 때만 인덱스 삭제하기
DROP INDEX IF EXISTS idx_old_search;
붙은 데이터베이스에서 인덱스 삭제하기
DROP INDEX aux.idx_sessions_token;
더 알아보기 (Learn more)
- CREATE INDEX - 인덱스 만들기
- EXPLAIN - 인덱스 삭제 후 쿼리 계획 확인