admin 서버를 9시간 멈춘 OOM은 5중 조인이 아니라 기간 없는 정산 엑셀 다운로드 한 건이었다
2026년 10월 12일, 정산 관리 API를 서비스하는 admin 서버가 새벽 4시 46분부터 오후 1시 50분까지 약 9시간 응답하지 않았다. 고객사 문의로 알았고, 원인은 힙 포화였다. 장애 공유 문서는 정산 화면의 5중 조인 쿼리가 주문 데이터를 대량으로 올려 힙을 채웠다고 적었다.…
MySQL 관련글입니다.
2026년 10월 12일, 정산 관리 API를 서비스하는 admin 서버가 새벽 4시 46분부터 오후 1시 50분까지 약 9시간 응답하지 않았다. 고객사 문의로 알았고, 원인은 힙 포화였다. 장애 공유 문서는 정산 화면의 5중 조인 쿼리가 주문 데이터를 대량으로 올려 힙을 채웠다고 적었다.…
데이터베이스를 설계할 때 정보를 여러 테이블에 나누어 저장하는 것은 데이터의 효율적인 관리와 무결성 유지를 위한 필수적인 과정이다. 이를 정규화(Normalization)라고 하며, 흩어진 데이터를 다시 연결하여 의미 있는 정보를 얻는 기술이 바로 조인(JOIN)이다. Users Table Products Table Orders Table 데이터 분리의 필요성…
GROUP BY 절을 통해 데이터를 그룹화하고 집계한 후, 특정 조건을 만족하는 그룹만을 필터링해야 할 때가 있다. 이때 사용하는 것이 HAVING 절이다. WHERE 절과 HAVING 절은 모두 필터링 기능을 하지만, 작동 시점과 대상이 명확히 다르다 WHERE 절과 HAVING 절의 차이 SQL…
GROUP BY 절은 데이터를 특정 기준에 따라 여러 그룹으로 나누고, 각 그룹에 대해 집계 함수를 적용하여 요약 통계를 생성할 때 사용한다. 이는 전체 데이터에 대한 통계가 아닌, 세분화된 기준(예: 카테고리별, 고객별)으로 데이터를 분석할 때 필수적인 기능이다 GROUP BY 기본 사용법…
데이터 분석은 비즈니스 의사결정의 핵심이다. 특히 쇼핑몰 등의 서비스 운영에서는 주문 현황, 매출, 고객 행동 등을 파악하는 것이 중요하다. SQL의 집계 함수(Aggregate Functions)는 이처럼 방대한 데이터를 요약이서하고 분석을 도와준다. order_stat table schema order_stat 데이터 NULL 값과 집계 함수 데이터는 종종…