亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

溢出排序階段緩沖的數據使用量超出內部限制

溢出排序階段緩沖的數據使用量超出內部限制

絕地無雙 2019-11-13 14:41:51
使用代碼:all_reviews = db_handle.find().sort('reviewDate', pymongo.ASCENDING)print all_reviews.count()print all_reviews[0]print all_reviews[2000000]計數打印2043484,然后打印all_reviews[0]。但是,在打印時all_reviews[2000000],出現錯誤:pymongo.errors.OperationFailure:數據庫錯誤:運行程序錯誤:溢出排序階段緩沖數據使用量33554495字節超過了內部限制33554432字節我該如何處理?
查看完整描述

3 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

我想補充一點。


您可以在admin數據庫上使用以下命令查看當前緩沖區的使用情況:


> use admin

switched to db admin

> db.runCommand( { getParameter : 1, "internalQueryExecMaxBlockingSortBytes" : 1 } )

{ "internalQueryExecMaxBlockingSortBytes" : 33554432, "ok" : 1 }

它的默認值為32 MB(33554432字節)。在這種情況下,您的緩沖區數據不足,因此您可以使用自己定義的最佳值來增加緩沖區限制,例如50 MB,如下所示:


>? db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes:50151432})

{ "was" : 33554432, "ok" : 1 }

我們還可以通過mongodb配置文件中的以下參數永久設置此限制:


setParameter=internalQueryExecMaxBlockingSortBytes=309715200

希望這可以幫助 ?。。?/p>


Note:此命令僅在3.0 +版本之后才支持


查看完整回答
反對 回復 2019-11-13
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

就我而言,有必要在代碼中修復必要的索引并重新創建它們:


rake db:mongoid:create_indexes RAILS_ENV=production

因為當需要字段索引時不會發生內存溢出。


PS在此之前,我必須禁用創建長索引時的錯誤:


# mongo

MongoDB shell version: 2.6.12

connecting to: test

> db.getSiblingDB('admin').runCommand( { setParameter: 1, failIndexKeyTooLong: false } )

也可能需要reIndex:


# mongo

MongoDB shell version: 2.6.12

connecting to: test

> use your_db

switched to db your_db

> db.getCollectionNames().forEach( function(collection){ db[collection].reIndex() } )


查看完整回答
反對 回復 2019-11-13
  • 3 回答
  • 0 關注
  • 933 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號