为什么进行list()操作时MongoDB比PostgreSQL慢了7倍
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章给大家介绍为什么进行list()操作时MongoDB比PostgreSQL慢了7倍,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近有需求,要将一个局域网Web数据平台迁
千家信息网最后更新 2025年01月24日为什么进行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安全错误
数据库的锁怎样保障安全
数据库掩码向导
酒店公寓里的网络安全吗
网络技术三级考试怎么考
数据库设计考试原题
伤害世界哪个服务器好
船舶网络安全防范与应对
淄博安泰网络技术
石景山区企业软件开发多少钱
网络安全法中关于网络的定义
成都java软件开发就业前景
投资交易的数据库
成都森焱网牛互联网科技
幻塔服务器人数排行
第三次国土调查初始数据库
下载找不到服务器怎么办
网络网络安全从事
平顶山校园网络安全系统
oa软件开发中文完整版
数据库的事务回滚怎么理解
婚姻家庭小说软件开发
华为服务器论坛
数据库mdc跨域计算技术
淘宝用的数据库
杨浦区推广软件开发服务价格
数据库如何将两表进行右连接
韩国IBM服务器
数据库在b s
怎么查服务器管理员
网络安全知识有奖竞赛答题链接
软件开发桌面指纹仪哪家便宜