为什么进行list()操作时MongoDB比PostgreSQL慢了7倍
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍为什么进行list()操作时MongoDB比PostgreSQL慢了7倍,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近有需求,要将一个局域网Web数据平台迁
千家信息网最后更新 2026年11月01日为什么进行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安全错误
数据库的锁怎样保障安全
精品咖啡豆
为想互联网科技怎么样
中资互联网科技
南京欣网互联网科技
苏州互联网科技贷款公司
融势互联网科技
睿民互联网科技
时间互联网络科技
互联网科技网站
互联网前沿科技
金融科技和互联网金融
团飞科技与伯堂互联网服务平台
上海宁丞科技互联网
互联网科技大赛获奖感言
互联网科技融合创新
东营紫格互联网科技
互联网公司属于科技吗
张家口科技产业互联网平台
银川新华互联网科技学校招聘
恒生科技互联网指数十大成分股
互联网科技工作委员会
互联网科技巨头监管
互联网 卓越科技
奔汉互联网科技
互联网科技热点资讯
互联网科技与大数据专业
国大互联网教育科技有限公司薪资
21世纪互联网科技成就
互联网硬科技公司
国产互联网科技公司