ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION367 / 1500
데이터베이스난이도 중하5분 답변 목표 · 보강본

운영 테이블에 온라인 인덱스를 추가하려 합니다. online이면 잠금과 서비스 영향이 전혀 없나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

온라인 인덱스 생성은 일반 작업과의 동시성을 높이는 기능이지 모든 잠금·I/O·로그·디스크 비용을 제거하지 않습니다. 시작·종료 시 메타데이터 잠금과 장기 transaction 때문에 대기가 생길 수 있습니다.

동작 원리와 전제

생성 동안 기존 데이터를 읽고 동시 변경을 반영해 유효한 인덱스로 게시해야 합니다. 엔진마다 단계·취소·실패 후 잔여 객체가 다르므로 버전과 옵션을 확인합니다. 고유 인덱스라면 생성 중 들어온 중복 때문에 마지막 단계에서 실패할 수도 있습니다.

선택과 실패 처리

사본에서 실제 크기로 시간·공간·로그·복제 지연을 측정하고 디스크 여유와 부하 상한을 확보합니다. lock timeout과 중단·재시작 절차를 준비합니다. 실패한 invalid 인덱스가 남았다면 상태를 확인한 뒤 정리하며 이름만 존재한다고 사용 가능하다고 보지 않습니다.

구체적인 사례와 검증

인덱스 생성이 끝날 때 긴 transaction이 메타데이터 잠금을 막아 최종 전환이 지연될 수 있습니다. 생성 중 CPU가 낮다고 안전하다고 판단하지 않고 대기 원인과 세션 수명을 봅니다. 취소하면 임시 파일이나 invalid 객체가 남는지 엔진 절차를 확인합니다. 고유 인덱스는 기존 중복 정리와 동시 쓰기의 새 중복 방지가 모두 필요합니다. 완료 후 기존 쿼리가 새 인덱스를 선택해 오히려 특정 파라미터에서 느려질 수도 있으므로 대표 질의를 다시 측정합니다. online이라는 옵션명보다 실제 단계와 장애 시 남는 상태를 운영 지침으로 남기겠습니다.

생성 중 쓰기·장기 읽기·취소·디스크 부족·중복 삽입을 시험합니다. 새 인덱스가 실제 질의에 쓰이는지와 쓰기 유지 비용을 확인합니다. 배포 성공은 DDL 반환뿐 아니라 인덱스 유효성·계획·사용자 지연이 목표 안에 들어오는지로 판단합니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: 온라인 인덱스 생성은 일반 작업과의 동시성을 높이는 기능이지 모든 잠금·I/O·로그·디스크 비용을 제거하지 않습니다.
  • 선택 조건: 사본에서 실제 크기로 시간·공간·로그·복제 지연을 측정하고 디스크 여유와 부하 상한을 확보합니다.
  • 검증 기준: 생성 중 쓰기·장기 읽기·취소·디스크 부족·중복 삽입을 시험합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • online DDL은 잠금·로그·추가 공간을 전혀 쓰지 않는다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 구버전 쓰기가 남아 있는 상태에서 표현을 바꿀 때 호환·백필·전환을 어떻게 나누나요?
  • 동일 SQL의 비용이 달라졌다면 추정 행·실제 행·파라미터·대기를 어떤 순서로 비교하나요?
  • 사전 중복 조회가 동시에 통과한 경우 최종 유일성을 어느 저장 경계에서 강제하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기