<클러스터드 인덱스 생성>
ALTER TABLE user // 테이블명
ADD CONSTRAINT PK_user_id // PK명
PRIMARY KEY (id); // 컬럼명
<클러스터드 인덱스 삭제>
ALTER TABLE user
drop primary key;
<넌 클러스터드 인덱스>
ALTER TABLE user
ADD CONSTRAINT UK_user_email // 인덱스명
UNIQUE (email); // 컬럼명
CREATE UNIQUE INDEX UK_user_email // 중복 값 허용하지 않는 인덱스, 인덱스명
ON user (email); // 테이블 이름 (컬럼명)
// 두 개 열을 조합한 인덱스 생성
CREATE INDEX idx_user_id_email // 인덱스명
ON user (id, email); // 테이블명 (컬럼명1, 컬럼명2)
인덱스를 모두 제거할 때는 보조 인덱스부터 삭제하도록 한다. 클러스터드 인덱스부터 제거하면 루트 페이지가 삭제되기 때문에 보조 인덱스의 리프 페이지는 모두 루트 페이지를 지정하고 있으므로 보조 인덱스의 리프 페이지가 페이비번호+#오프셋으로 바뀌어야 하는데 보조 인덱스를 다시 재구성해야 한다. 하지만, 재구성 후에 보조 인덱스도 삭제되기 때문에 고생해서 재구성한 것을 또 삭제해야 한다.
DROP INDEX email ON user
ALTER TABLE user DROP INDEX email;
*참고 자료 - https://junghn.tistory.com/entry/DB-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%9D%B8%EB%8D%B1%EC%8A%A4%EC%99%80-%EB%84%8C%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EA%B0%9C%EB%85%90-%EC%B4%9D%EC%A0%95%EB%A6%AC
https://gocoder.tistory.com/1826