데이터베이스 쿼리 엔진: 푸시 방식 대 풀 방식
2025-04-16
본 문서는 데이터베이스의 쿼리 엔진에서 푸시 방식과 풀 방식의 차이점을 자세히 설명합니다. 풀 방식 시스템은 이터레이터 모델과 유사하게 사용자 주도 방식이며, 데이터는 필요할 때 가져옵니다. 반면에 푸시 방식 시스템은 생성자 주도 방식이며, 데이터를 다운스트림 연산자에 적극적으로 푸시합니다. 푸시 방식 시스템은 DAG 형태의 쿼리 계획(예: SQL의 WITH 절) 처리에 뛰어나며, 데이터를 여러 다운스트림 연산자에 효율적으로 푸시하여 중복 계산과 불필요한 버퍼링을 방지합니다. 그러나 풀 방식 시스템은 특정 알고리즘(병합 조인 및 LIMIT 절 등) 처리에 장점이 있습니다. 본 문서에서는 캐시 효율성, 코드 간결성 및 다양한 시나리오에서 각 모델의 적합성도 검토하며, 어떤 모델이 보편적으로 우수한 것은 아니며 선택은 구체적인 요구 사항에 따라 달라진다는 결론을 내립니다.
개발
푸시풀