프로그래밍&IT/PostgreSQL

[PostgreSQL] 운영 중인 테이블에 인덱스 생성

sjoo 2025. 7. 1. 14:00

운영중인 상태에서 서비스 중단 없이 인덱스를 생성해야할 경우 아래와 같이 생성하면 된다.

CREATE INDEX CONCURRENTLY idx_test ON test (id);

 

CREATE INDEXCREATE INDEX CONCURRENTLY의 차이

 테이블 Lock  전체 잠금 (읽기/쓰기 차단)  안 걸림 (읽기/쓰기 가능)
 속도  빠름  느림
 트랜잭션 내 사용  가능  불가능
 실패 시 롤백  자동 롤백  수동 처리 (직접 DROP INDEX)
 운영환경에서 사용 권장  x  o

 

개발환경이나 서비스 중단이 가능한 경우 CREATE INDEX

운영환경이나 서비스 중단이 불가능한 경우 CREATE INDEX CONCURRENTLY