애플리케이션에서 Cloudflare D1의 대용량 결과를 한 번의 쿼리로 가져온다면 11월 4일 전에 점검하세요. 이날부터 50MB를 초과하는 결과를 반환하는 쿼리는 오류로 종료됩니다. 변경 사항은 결과 크기에 관한 것이며 데이터베이스 크기나 API 요청량에는 해당하지 않습니다. REST API를 통한 가져오기와 내보내기는 기존 동작을 유지합니다.
무엇이 달라지나요
Cloudflare는 2026년 10월 30일 제한을 발표했습니다. 새 규칙은 11월 4일 수요일부터 적용됩니다. SQL 쿼리 결과가 50MB를 초과하면 D1은 D1 query result exceeded the maximum response size limit of 50 MB 오류를 반환합니다. 회사는 이 기준이 D1 쿼리의 99.999번째 백분위수에 해당한다고 밝혔습니다. 즉, 대다수 쿼리는 제한보다 작은 결과를 반환합니다. 이는 Cloudflare 플랫폼 전체를 기준으로 한 추정치이지 개별 애플리케이션에 대한 보장은 아닙니다.
쿼리 결과와 데이터 전송의 차이에 유의해야 합니다. 제한은 D1 쿼리가 반환하는 결과에 적용되며, REST API를 통한 가져오기와 내보내기 작업은 규칙에서 명시적으로 제외됩니다. 따라서 많은 행이나 폭이 넓은 레코드를 읽고 결과를 통째로 가져오는 애플리케이션 쿼리를 우선 점검해야 합니다.
대용량 결과가 예상치 못하게 생기는 이유
응답 크기는 행의 개수만으로 결정되지 않습니다. 열이 많은 쿼리는 레코드 수가 많지 않더라도 큰 결과를 반환할 수 있으며, 특히 행에 긴 텍스트나 그 밖의 큰 값이 포함된 경우 그렇습니다. SELECT * 구문은 호출 측에 몇 개의 열만 필요하더라도 모든 열을 가져옵니다. 시간이 지나 테이블이 커지면 이전에는 안전했던 쿼리가 제한을 넘을 수도 있습니다.
따라서 일회성 관리용 내보내기뿐 아니라 보고서 처리기, 백그라운드 작업, 후속 처리를 위해 데이터를 모으는 API 메서드 등 애플리케이션의 정기 작업도 점검해야 합니다. 이는 감사를 위한 사례이지, 각 작업이 반드시 영향을 받는다는 뜻은 아닙니다.
쿼리 준비 방법


- 범위가 넓은 조회를 찾으세요.
SELECT *를 사용하거나 행 수 제한이 없거나 큰 텍스트 필드를 포함하는 쿼리를 살펴보세요. - 가져올 열을 줄이세요. 다음 처리 단계에 실제로 필요한 열만 지정하세요.
- 읽기를 여러 부분으로 나누세요. Cloudflare의 권고처럼
LIMIT과OFFSET으로 페이지 단위 조회를 적용하고 각 부분을 순차적으로 처리하세요. - 분할 후 동작을 확인하세요. 애플리케이션이 결과를 올바르게 합치는지, 전체 조회 결과를 한 번의 응답으로 받는다고 가정하지 않는지 확인하세요.
별도의 내보내기 작업에서 애플리케이션이 전체 데이터 세트를 필요로 한다면 REST API를 통한 내보내기 작업이 적합한지 확인하세요. Cloudflare는 새 제한이 해당 작업에는 적용되지 않는다고 별도로 밝혔습니다. 하지만 일반적인 애플리케이션 로직에서는 이 예외만으로 대규모 SQL 응답을 재검토할 필요가 사라지는 것은 아닙니다.
기한이 적용되는 대상
기한은 50MB를 초과하는 결과를 반환하는 쿼리가 있는 D1 사용자에게 직접 적용됩니다. 결과를 통째로 메모리에 적재하거나, 구성 요소 간에 전달하거나, 보고서용으로 만드는 코드를 우선 점검하세요. 쿼리가 이미 작은 페이지 단위로 필요한 필드만 반환한다면 별도의 변경이 필요하지 않을 수 있습니다. 판단의 근거는 실제 쿼리 응답 크기입니다.
11월 4일 전에 점검하면 제한이 적용되기 전에 큰 응답 하나에 의존하는 부분을 찾을 수 있습니다. Cloudflare의 추정에 따르면 대부분의 쿼리에서 기준은 일반적인 결과 크기보다 훨씬 큽니다. 영향을 받는 시스템이라면 선택 데이터를 줄이고, 여러 부분으로 나누어 읽거나, 내보내기에는 REST API를 이용하는 것이 가장 직접적인 대응입니다.