当前位置: 首页 > news >正文

Mongodb—查询数据报错 Sort operation used more than the maximum 33554432 bytes of RAM

 线上服务的MongoDB中有一个很大的表数据有十几万条。然后报了下面这个错误:

“exception”:”org.springframework.data.mongodb.UncategorizedMongoDbException”,
“message”:”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 smaller limit.’ on server 

原因,排序问题,后端代码中查询肯定使用了排序。

这是个非常常见的MongoDB报错了。因为MongoDB处理排序时,如果排序的字段没有建立索引,会把全表都丢到内存中处理

而内存的大小并不是无限使用的,MongoDB的默认设置是32MB。一旦数据量超过32MB,则会报错。

解决方案1:修改大小

参数internalQueryExecMaxBlockingSortBytes

32MB这个限制是在参数internalQueryExecMaxBlockingSortBytes中控制。你可以在MongoDB的客户端上直接查看这个参数的值,执行以下语句:

db.runCommand({getParameter: 1,"internalQueryExecMaxBlockingSortByte
http://www.lryc.cn/news/68081.html

相关文章:

  • Java内存异常和垃圾回收机制
  • linux系统挂载逻辑卷和扩展逻辑卷组
  • WPF:WPF原生布局说明
  • SpringMVC常用注解用法
  • Liunx find locate 命令详解
  • JAVA并发专题(1)之操作系统底层工作的整体认识
  • WiFi(Wireless Fidelity)基础(七)
  • Agilent安捷伦33522B任意波形发生器
  • PostgreSQL-如何创建并发索引
  • 【大数据模型】使用Claude浅试一下
  • 鼎盛合——国产电量计芯片的分类与发展
  • 交叉验证之KFold和StratifiedKFold的使用(附案例实战)
  • Cloud Kernel SIG月度动态:发布ANCK 5.10、4.19新版本,ABS新增仓库构建功能
  • JavaScript:new操作符
  • XShell配置以及使用教程
  • Vue3 基础语法
  • 【开源项目】Disruptor框架介绍及快速入门
  • 双向链表实现约瑟夫问题
  • 日心说为人类正确认识宇宙打下了基础(善用工具的重要性)
  • Kali-linux系统指纹识别
  • Java版本电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
  • Java字符串知多少:String、StringBuffer、StringBuilder
  • 中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化
  • 如何自学C++编程语言,聊聊C++的特点,别轻易踩坑
  • 算法Day07 | 454.四数相加II,383. 赎金信,15. 三数之和, 18. 四数之和
  • ps抠图、抠头发去背景等
  • 计算机组成原理基础练习题第一章
  • [PyTorch][chapter 34][池化层与采样]
  • Java进阶-字符串的使用
  • 接口自动化框架对比 | 质量工程