Query failed with error code 96 and error message 'Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smal


首先問題很明確,當我對一個沒有建索引的字段做find,然后做sort的時候,可能觸發sort的size的32MB限制,而mongodb的sort操作是把數據拿到內存中再進行排序的,為了節約內存,默認給sort操作限制了最大內存為32Mb,當數據量越來越大直到超過32Mb的時候就自然拋出異常了!

解決方案有兩種(建議添加索引):

一、為該字段添加索引

db.CollectionName(表名).createIndexes({"title":1})  //title為字段名,1為正序,-1為倒序

二、修改默認配置,把sort時可以用的內存設置大點

db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320}) //該命令是擴大sort限制為320MB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM