배송 주문 테이블의 경우 다음과 같이 데이터가 입력되고 있다.
is_complete 컬럼을 통해 해당 배송 주문이 완료되었는지 확인 하며, 완료된 배송 주문은 기사에게 할당되지 않는다.
하지만 시간이 지나 수많은 데이터가 이 테이블에 쌓이면 어떻게 될까
아마 해당 테이블을 조회하는 쿼리가 포함된 기능의 성능이 느려질 것이다.
해당 VIEW 테이블은 배송 기사의 실적을 관리하는 테이블로,
총 배송 건수를 조회하기 위해 집계함수(count)를 사용하며, 이 경우 테이블의 전체 데이터를 조회한다.
delivery_order 테이블에 약 10만건의 데이터가 있을 때 해당 VIEW 테이블을 조회하면
약 0.8초의 시간이 걸린다.
delivery_order 테이블에 20만건의 데이터를 추가한 후 20만건의 데이터가 있을 때 다시 조회하면
약 0.5초가 더 걸린 1.3초가 걸린다.
delivery_order 테이블은 수시로 데이터가 입력되고, 수정되는 테이블이므로 해당 테이블을 긴 시간 조회하는 쿼리가 실행되면 성능이 저하될 우려가 있다.
따라서 완료된 배송 주문들은 해당 테이블에 옮기고 이 테이블을 조회하는것이 바람직하다고 생각했다.