프로그래밍&IT/PostgreSQL
[PostgreSQL] 운영 중인 테이블에 인덱스 생성
sjoo
2025. 7. 1. 14:00
운영중인 상태에서 서비스 중단 없이 인덱스를 생성해야할 경우 아래와 같이 생성하면 된다.
CREATE INDEX CONCURRENTLY idx_test ON test (id);
CREATE INDEX와 CREATE INDEX CONCURRENTLY의 차이
테이블 Lock | 전체 잠금 (읽기/쓰기 차단) | 안 걸림 (읽기/쓰기 가능) |
속도 | 빠름 | 느림 |
트랜잭션 내 사용 | 가능 | 불가능 |
실패 시 롤백 | 자동 롤백 | 수동 처리 (직접 DROP INDEX) |
운영환경에서 사용 권장 | x | o |
개발환경이나 서비스 중단이 가능한 경우 CREATE INDEX
운영환경이나 서비스 중단이 불가능한 경우 CREATE INDEX CONCURRENTLY