1 분 소요

인덱스(Index)는 데이터 검색 성능을 향상시키는 핵심 요소이지만, 불필요하거나 비효율적인 인덱스는 삭제하는 것이 데이터 처리 성능에 도움이 될 수 있습니다. 이 글에서는 MySQL에서 인덱스를 삭제하는 두 가지 방법과 주의사항을 정리해 드립니다.


✅ 1. 인덱스 삭제 방법 요약

삭제 방법 문법 설명
ALTER 문 ALTER TABLE 테이블명 DROP INDEX 인덱스명; 가장 일반적인 방식
DROP 문 DROP INDEX 인덱스명 ON 테이블명; 내부적으로 ALTER 문으로 처리됨

🔧 2. ALTER 문으로 인덱스 삭제

문법

ALTER TABLE 테이블명
DROP INDEX 인덱스명;

예제

ALTER TABLE Reservation
DROP INDEX NameIdx;

Reservation 테이블에서 NameIdx 인덱스를 삭제


🗑️ 3. DROP 문으로 인덱스 삭제

문법

DROP INDEX 인덱스명 ON 테이블명;

예제

DROP INDEX IdIdx ON Reservation;

Reservation 테이블에서 IdIdx 인덱스를 삭제


🔍 4. 인덱스 삭제 확인

삭제가 완료되었는지 확인하려면 다음 명령어를 사용하세요:

SHOW INDEX FROM Reservation;

→ 현재 Reservation 테이블에 남아 있는 인덱스를 확인할 수 있습니다.


⚠️ 5. 주의사항

❗ 5.1. PRIMARY KEY 삭제는 다르게 처리

ALTER TABLE 테이블명
DROP PRIMARY KEY;
  • PRIMARY KEY는 인덱스와 동시에 동작하므로 단순 DROP INDEX로는 삭제할 수 없습니다.

❗ 5.2. 삭제 시 성능 영향 고려

항목 영향
인덱스 삭제 검색 속도 저하 가능성
반면 삽입·수정·삭제 속도는 개선될 수 있음
권장 자주 사용되지 않는 인덱스만 삭제

💡 6. 실전 예제

🔹 불필요한 인덱스 제거

ALTER TABLE Orders
DROP INDEX OrderDateIdx;

OrderDateIdx 인덱스가 자주 사용되지 않을 경우 성능 최적화 가능

🔹 기본 키 삭제 후 재정의

ALTER TABLE Customer
DROP PRIMARY KEY;

ALTER TABLE Customer
ADD PRIMARY KEY (CustomerID);

→ 기존 기본 키를 변경할 때 필요한 절차


🧾 7. 요약 정리

  • 인덱스 삭제 문법
    • ALTER TABLE 테이블명 DROP INDEX 인덱스명;
    • DROP INDEX 인덱스명 ON 테이블명;
  • 삭제 여부 확인: SHOW INDEX FROM 테이블명;
  • 주의 사항
    • PRIMARY KEY는 DROP PRIMARY KEY로 별도 처리
    • 삭제 전 인덱스의 사용 빈도 확인 필요

질문 정리

❓ 인덱스를 삭제하면 데이터가 사라지나요?

아니요. 인덱스는 검색 성능만 향상시키는 구조이며, 삭제해도 데이터는 유지됩니다.

❓ 삭제한 인덱스는 복구할 수 있나요?

자동 복구는 불가하며, 동일한 문법으로 다시 생성해야 합니다.

❓ 인덱스가 많은 게 무조건 좋은가요?

아니요. 너무 많은 인덱스는 오히려 성능 저하를 초래할 수 있습니다. 사용 빈도를 기준으로 정리하세요.

카테고리:

업데이트:

댓글남기기