AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

ArangoDB、MongoDB 和 Neo4j 性能比较

  • 2015-06-18
  • 本文字数:1159 字

    阅读完需:约 4 分钟

Claudius Weinberger 是 ArangoDB 的首席执行官。在他看来,原生多模型数据库是指数据库引擎兼有文档、图和键 / 值数据模型,提供了涵盖三种模型的统一查询语言和 API,并允许在单个查询中混合使用三种模型。他认为,多模型数据库可以与文档存储及图数据库(比如, MongoDB Neo4j )一较高下。为了支持这个观点,其团队对 ArangoDB、MongoDB 和 Neo4j 进行了性能测试。近日,他发表了一篇博文,介绍测试过程和结果。

测试所用的数据集是一个社交网络快照,由斯坦福大学的 SNAP 提供,其中包含 160 多万个顶点(代表个人资料)和 3000 多万条边(代表朋友关系)。他们用顶点数据做文档数据库测试,用顶点和边的综合数据做图数据库测试。测试场景如下:

  • 单次读:单文档(个人资料)读取(10 万次);
  • 单次写:单文档写入(10 万次);
  • 聚合:计算社交网络的年龄分布,即每个年龄出现多少次;
  • 相邻顶点:为 500 个顶点查找直接相邻顶点以及相邻顶点的相邻顶点;
  • 最短路径:在一个高度连通的社交图中查找 19 条最短路径。

其中,所有数据库都执行相同的操作,所有测试用例都是用 JavaScript 实现,在 node.js 中运行。

测试结果以 ArangoDB 的吞吐量指标为基准,百分比越小表明吞吐量越高,相反,百分比越高表明吞吐量越低:

可以看出,测试结果支持 Weinberger 的观点。MongoDB 的单文档读 / 写更快,但 ArangoDB 的聚合和查找相邻顶点效率更高。由于在 MongoDB 中测试最短路径查询需要完全在客户端实现,所以他们没有对 MongoDB 做这项测试。令 Weinberger 吃惊的是,Neo4j 并没有在查找相邻顶点的测试中胜出。

在 Hacker News 上,部分网友对测试的客观性提出了质疑。网友 harunurhan 提出:

你们确定对 Neo4j 或 MongoDB 进行了与 ArangoDB 同等程度的调优?而且,我不喜欢一家公司发表自家产品与其它产品的评测文章。虽然,许多文章信息丰富且客观,但我一律将它们视为市场营销 / 广告文章。

对此,网友 neunhoef(来自 ArangoDB 的 Max)答复说:

我们已经花费了相当大的精力来对每一种数据库进行调优。但显然,与其它数据库相比,我们更了解自己的产品。不过,我们已经号召更了解其它产品的人(参与进来),调查将一直开放,任何人都可以做出贡献及提出改进建议。

网友 bhouston 则表示:

我认为,要做到客观,唯一的方式是提供一项测试,然后给每个 DB 提供商机会,让他们调整数据库和查询,以便优化性能。

对此,网友 porker 提醒道:

据我所知,测试是开源的,原始结果也在那里,也欢迎贡献。

感兴趣的读者可以访问该测试的 GitHub 页面,或者参与 HN 的讨论


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-18 09:1620290
用户头像

发布了 1008 篇内容, 共 412.2 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

SpreadJS 纯前端表格控件应用案例:医疗行业智能报表系统

葡萄城技术团队

即大数据后-贵阳能否成为区块链的机遇之城?

CECBC

区块链 大数据 贵阳

央行清算总中心与三家银行签署区块链福费廷交易平台合作协议

CECBC

区块链技术 人民银行

获奖名单公布 | 写作平台八月宠粉福利来袭,参与创作领取限时大奖~

InfoQ写作社区官方

写作平台 征稿 热门活动

丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!

Hollis

Java 程序员 后端

华为阿里下班时间曝光:所有的光鲜,都有加班的味道

程序员生活志

华为 加班 阿里

不断壮大的电竞生态——英特尔大师挑战赛携手李宁中国选手等你来战!

最新动态

快速学习秘诀:费曼学习法

池建强

学习

微服务

石刻掌纹

中国计算机软件开发合同纠纷分析报告(2019-2)

朱又生

大数据 项目管理 计算机软件开发合同纠纷 风险管理

低/零代码的认知误区有哪些?

代码制造者

编程语言 低代码 零代码 信息化 开发应用

Linux神器strace的使用方法及实践

华为云开发者联盟

Linux 运维 工具 后端 Strace

IMC御用设备到底有多强?英特尔携手掠夺者呈现“飞”一般5GHz电竞盛宴

最新动态

中国计算机软件开发合同纠纷分析报告(2019-1)

朱又生

大数据 项目管理 计算机软件开发合同纠纷 风险管理

Oracle常用命令

阡陌r

第十周总结

晨光

原创 | 使用JPA实现DDD持久化- O:对象的世界(3/3)

编程道与术

Java hibernate DDD JDBC jpa

第四届IMC再起烽烟 极致性能助战力升级!

最新动态

将设计模式应用到日常的curd中-模板方法和装饰器

LSJ

Java 设计 设计模式 装饰器 模板方法

RushPlayer“一键下马”系列之-JavPlayer

flow

第十周作业

晨光

最右JS2Flutter框架——动画、小游戏的实现(四)

刘剑

flutter 大前端 探索与实践

信息管理软件需求分析阶段的实践经验及论述(2010年)

朱又生

项目管理 产品经理 需求分析 用户需求调研

AndroidStudio解决Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle

小菜鸟学php

SpreadJS 纯前端表格控件应用案例:生产采购管理软件

葡萄城技术团队

软件规模扩张与其组织粒度的进化

superman

中台 微服务 服务化改造

娱乐至穷

北柯

学习 互联网 娱乐 抖音

微服务的认识

chenzt

架构师训练营第10周

大丁💸💵💴💶🚀🐟

中国计算机软件开发合同纠纷分析报告(2019-3)

朱又生

大数据 项目管理 计算机软件开发合同纠纷 风险管理

如何通过electron构建桌面跨平台音视频应用

ZEGO即构

音视频 Electron RTC

ArangoDB、MongoDB和Neo4j性能比较_数据库_谢丽_InfoQ精选文章