DB 마이그레이션, 미리 시간을 알아야 계획이 선다
데이터베이스 마이그레이션은 서비스 규모가 커질수록 리스크가 큰 작업입니다. 단순히 컬럼 하나를 추가하는 ALTER 작업은 테이블 락 시간이 짧아 초당 수만 건을 처리할 수 있지만, 기존 데이터를 변환하거나 복사하는 UPDATE·COPY 작업은 트랜잭션 로그와 디스크 I/O 부담이 커져 속도가 크게 떨어집니다. 인덱스를 재생성하거나 테이블 전체를 재작성해야 하는 경우에는 락 경합과 리소스 소모가 가장 크기 때문에 사전에 소요 시간을 예측하고 다운타임 여부를 결정하는 과정이 필수입니다.
이 계산기는 총 레코드 수와 마이그레이션 유형별 처리 속도, 병렬 워커 수를 기준으로 예상 소요 시간을 계산합니다. 실제 운영 환경에서는 서버 스펙, 네트워크 지연, 다른 쿼리와의 락 경합 등 변수가 많기 때문에 계산 결과에 10%의 여유 버퍼를 더해 보여줍니다. 예상 시간이 1시간을 넘어간다면 트래픽이 적은 새벽 시간대로 일정을 잡거나, 서비스 점검 공지를 준비하는 것이 안전합니다.
대규모 테이블을 무중단으로 마이그레이션해야 한다면 gh-ost나 pt-online-schema-change 같은 온라인 스키마 변경 도구를 검토해 보세요. 원본 테이블을 그대로 두고 임시 테이블에 데이터를 복제한 뒤 원자적으로 교체하는 방식이라 서비스 다운타임을 최소화할 수 있습니다.
자주 묻는 질문
병렬 워커 수를 늘리거나 인덱스를 마이그레이션 후에 재생성하는 등 배치 처리 전략을 최적화하면 소요 시간을 줄일 수 있습니다.
gh-ost, pt-online-schema-change 같은 온라인 스키마 변경 도구를 사용하면 서비스 운영 중에도 무중단으로 마이그레이션할 수 있습니다.
네, 서버 스펙과 락 경합, 네트워크 상태에 따라 실제 소요 시간은 예측치보다 늘어날 수 있어 여유 시간을 확보하는 것이 안전합니다.