При попытке запустить дамп базы данных с использованием запроса от db около 5 миллиардов, время выполнения показывает, что этот дамп не будет завершен в любое разумное время (100 + дней). Запрос также застыл после того, как он, кажется, закончился 0%, около 22 или около того часов спустя - строка после является линией metadata.json.Как ускорить Mongodump, Dump Not Finishing
Свалка линия:
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, используйте объяснение(), чтобы увидеть, что такое план запроса. Возможно, запрос сам по себе медленный. – marcinn
В дополнение к выводу функции explain() вы также можете подтвердить, какая версия MongoDB вы используете? Сколько результатов вы ожидаете от своих 5 миллиардов исходных документов? Неясно, действительно ли 10 миллионов объектов - ваш полный набор результатов, поскольку последняя строка, ссылающаяся на «metadata.json», обычно испускается, когда дамп завершается для данной коллекции. – Stennie
Привет всем, Так что даже .explain() занимает очень много времени (пару часов +) для запуска. Это обычное дело? Я даже попробовал упростить .explain() только для фильтра местоположения (если координаты x и y-координаты находятся в пределах диапазона) и все еще занимает некоторое время. Будет продолжать работать и обновляться. – Wes