为什么进行list()操作时MongoDB比PostgreSQL慢了7倍
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章给大家介绍为什么进行list()操作时MongoDB比PostgreSQL慢了7倍,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近有需求,要将一个局域网Web数据平台迁
千家信息网最后更新 2025年12月03日为什么进行list()操作时MongoDB比PostgreSQL慢了7倍
最近有需求,要将一个局域网Web数据平台迁移到线上,顺带着,本地服务使用的PostgreSQL也要替换成国内某云的MongoDB。 由于之前的Web框架选择的Django,为了能够最小限度地改动代码,并对接上MongoDB上已存在的数据库和数据,在一番对比之后(Djongo和MongoEngine),选择了MongoEngine这个对象文档映射(ODM)模块来替代Django原有的ORM。 对照着MongoEngine的文档一顿操作,第一个页面迁移完成,赶紧打开看看。 不看则已,一看瞎哭,页面加载完足足等了1、2、3、4、5、6、7、8、……27秒
(线上MongoDB服务)
而之前的系统这个页面打开只需要几秒钟:

(本地PostgreSQL服务)
这还了得,上线了不是给自己丢脸吗,赶紧排查测试。
在这个页面里面,主要数据操作是从数据库中查询出原始数据,然后加载到Pandas的DataFrame中,接着在Pandas中进行各种数据处理,最后返回JSON数据给前端进行渲染。 数据库总的数据量为接近500万,最后的查询结果在3万左右。 对各个环节分别进行测试发现,主要的时间消耗在了从数据库读取数据,然后加载到Pandas这个过程中。 于是将这个过程专门提取出来,单独测试其消耗的时间。 结果发现,使用MongoEngine进行数据查询,然后加载到Pandas中需要几十秒的时间:

21秒的耗时,可能是由于MongoEngine对PyMongo进行封装之后的性能不行吧,于是直接使用PyMongo进行测试: 果然,经过一层封装之后,MongoEngine的效率不如PyMongo,但是直接使用PyMongo也消耗了14秒的时间。 而在本地使用PostgreSQL作为数据库后端的Django ORM测试仅仅花费了3秒的时间:
使 用list()对数据 查询结果进 行 处理 是将其加 载 到P andas中 的一 个常规前置 操作,相当于遍历查询 集的结 果并将每一条数据添加到一个 列表中。 类似 于以下操作:
只是一个list()操作,就让MongoDB的速度比PostgreSQL慢如此之多,难道我哪里操作不对?
这篇文章给大家介绍为什么进行list()操作时MongoDB比PostgreSQL慢了7倍,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。


res = [] for i in xx: res.append(i)
关于为什么进行list()操作时MongoDB比PostgreSQL慢了7倍就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
数据库
时间
查询
测试
页面
结果
服务
消耗
内容
文档
更多
过程
处理
封装
帮助
选择
不对
不行
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
智能宾馆软件开发
智能机器人软件开发合同
wifi网络安全选哪个
网络安全法约谈制度
数据库重构和迁移
最新软件开发费用国家标准
数据库活锁解决
英语四级学习用哪个数据库
恶意程序攻击的是数据库吗
智能手机主题软件开发
网络安全意识与防护技术
数据库表散列是什么意思
读取服务器共享文件失败
首届网络安全大赛
浙教版网络技术应用ppt
贵州省网络安全挑战赛
闵行区本地软件开发厂家价格
hmcl有哪些认证服务器
部署网络安全监测装置目标
网络安全和保密检查总结报告
数据库把库删掉可以恢复吗
计算机网络技术云应用
工业网络技术讲解PPT
p2p 转型 互联网科技
为什么服务器的上榜战力不同
服务器安全组端口设置
商城软件开发多少钱
服务器主板零件认识图解
海口软件园网络安全招聘
曙光服务器型号