MongoDB Sort 内存问题
MongoDB Sort 内存问题
0. 问题描述
# python
client.find(filter_).sort('updatedAt', sort_).skip(skip_).limit(limit_)
在 MongoDB 分页查询时, 因为排序的数据太大会有内存问题. 有三种解决方案
1. 设置排序字段索引
db.getCollection('col').createIndex({"updatedAt": 1})
2. 提高数据库排序的内存上限
db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: 104857600})
3. 更换 aggregate 进行查询 (最优方案)
【MongoDB Sort 内存问题】更换 aggregate 进行查询, 并设置 allowDiskUse 为 True 允许使用磁盘
# python
client.aggregate([
{'$match': {}},
{'$sort': {'updatedAt': 1}},
{'$skip': 10000},
{'$limit': 10},
], allowDiskUse=True)
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- iOS内存对齐原则
- SpringBoot整合MongoDB完整实例代码
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 内存管理概念与原理以及解决办法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 内存管理