약 50 억 db의 쿼리를 사용하여 데이터베이스 덤프를 실행하려고하면 진행률 표시 줄 시간이이 덤프가 적당한 시간 (100 + 일). 또한 0 %에서 끝난 것처럼 보인 후에도 쿼리가 멈추었습니다. 약 22 시간 후에 그 라인은 metadata.json 라인이되었습니다.Mongodump의 속도를 올리는 방법, 마무리하지 않는 덤프
덤프 라인은 다음과 같습니다
mongodump -h myHost -d myDatabase -c mycollection --query "{'cr' : {\$gte: new Date(1388534400000)}, \$or: [ { 'tln': { \$lte: 0., \$gte: -100.}, 'tlt': { \$lte: 100, \$gte: 0} }, { 'pln': { \$lte: 0., \$gte: -100.}, 'plt': { \$lte: 100, \$gte: 0} } ] }"
그리고 출력의 마지막 몇 줄은 (. 나는 아직 이미지를 게시 할 수 없습니다로 입력) 된
[timestamp] Collection File Writing Progress: 10214400/5066505869 0% (objects)
[timestamp] Collection File Writing Progress: 10225100/5066505869 0% (objects)
[timestamp] 10228391 objects
[timestamp] Metadata for database.collection to dump/database/collection.metadata.json
어떤 생각이 성능을 개선하는 데 도움 또는 왜 이렇게 오래 걸릴지에 대한 생각은 없습니까?
이 쿼리를 mongo 셸에 작성하고 explain()을 사용하여 쿼리 계획이 무엇인지 확인하십시오. 쿼리 자체가 느리다는 것일 수도 있습니다. – marcinn
explain()의 출력 외에 어떤 버전의 MongoDB 당신이 사용하고 있습니까? 50 억 개의 소스 문서에서 예상되는 출력 결과의 수는 얼마입니까? 'metadata.json'을 참조하는 것이 일반적으로 지정된 콜렉션에 대해 덤프가 완료 될 때 방출되는 마지막 라인으로 ~ 천만 개의 객체가 실제로 전체 결과 세트가 될지 여부는 불분명합니다. – Stennie
안녕하세요. 그럼 .explain()도 실행하는 데 오랜 시간 (몇 시간 이상)을 소요하고 있습니다. 평소입니까? x 좌표와 y 좌표가 둘 다 범위 내에있는 경우에만 .explain()을 위치 필터로 단순화하려고 시도했지만 여전히 시간이 걸립니다. 계속 실행 및 업데이트됩니다. – Wes