DBAtlas · 데이터베이스 운영 아틀라스

292: QueryExceededMemoryLimitNoDiskUseAllowed (오류 코드 292)

MongoDB

의미

쿼리 또는 aggregation 스테이지가 허용된 메모리 한도(기본 100 MB)를 초과했고 디스크 쓰기가 허용되지 않아 실패했다. 보통 sort 또는 group 스테이지에서 나타난다.

원인

인덱스 없는 대용량 데이터에 대한 메모리 내 정렬, 큰 $group/$sort aggregation 스테이지, 매우 큰 중간 결과 세트, allowDiskUse:false 설정.

해결 방법

allowDiskUse:true 옵션으로 aggregation에서 디스크 사용을 허용한다: db.collection.aggregate(pipeline, {allowDiskUse:true}). 정렬 필드에 인덱스를 생성해 메모리 사용을 줄인다. pipeline 초반에 $match로 필터링해 처리 데이터를 줄인다. 필요하면 결과를 페이지네이션한다. MongoDB 6.0+에서는 대부분의 경우 디스크 사용이 기본으로 활성화된다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목