Derived Column

파생 컬럼은 계산 비용과 갱신 책임을 교환한다

주문 총액을 저장하면 읽기는 빠르지만 주문상세 변경 시 같은 트랜잭션에서 다시 계산해야 한다.

읽기 이득
갱신 책임
스냅샷 의미
읽기

orders.total_amount를 바로 읽어 응답 시간을 줄인다.

쓰기

order_items 변경 시 total_amount를 재계산해야 한다.

업무 의미

주문 당시 금액 보존은 성능이 아니라 이력 요구일 수도 있다.

order_items 변경
  → SUM(unit_price * quantity)
  → orders.total_amount 갱신
  → 검증 로그 기록