在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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:1620683
用户头像

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

关注

评论

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

2022年智能运维企业50强,博睿数据实力入选

博睿数据

数字化 智能运维 博睿数据 性能监测

开发实践丨昇腾CANN的推理应用开发体验

华为云开发者联盟

Python 人工智能

linux远程复制文件命令小总结

入门小站

分布式锁用 Redis 还是 Zookeeper?

C++后台开发

redis zookeeper 分布式 后端开发 C++后台开发

web前端开发技术前景怎么样好不好

小谷哥

C 语言入门(五)

逝缘~

7月月更

学习WEB前端去哪里培训比较好

小谷哥

大模型训练难于上青天?效率超群、易用的“李白”模型库来了

OneFlow

机器学习 gpu 模型训练

ST 端侧人工智能之视觉检测课程

贾献华

7月月更

SAP Fiori 应用 Adapt UI 动态显示或者隐藏的技术设计细节解析

汪子熙

JavaScript 前端开发 web开发 SAP 7月月更

在线多行文本批量正则替换添加后缀工具

入门小站

工具

Optional的使用详解

echoes

自动化测试如何实施落地?

老张

软件测试 自动化测试 项目落地

记录一次现场 mysql 重复记录数据的排查处理

安逸的咸鱼

MySQL 实战案例 7月月更

如何深入学习Html5前端技术知识

小谷哥

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

OpenHacker

Docker

JavaScript基础之值和引用

已注销

7月月更

在线版 Python 图片转字符画

OpenHacker

Python

SaaS应用:实现企业数字化转型的最佳途径

Baklib

在武汉学习web前端开发课程哪家比较好

小谷哥

iOS 中的代理模式

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

如何用Apifox 的智能Mock功能?

Liam

前端 Mock

企事业单位建设知识管理的七条建议

Baklib

知识管理 企事业单位

自定义spring boot starter三部曲之二:实战开发

程序员欣宸

Java springboot 7月月更

连麦直播系统软件——语音聊天系统

开源直播系统源码

软件开发 直播源码 开源源码 连麦语音直播 语音聊天直播

裴丹:AIOps 智能运维经验分享

华为云开发者联盟

云计算 后端

Free自由协议系统Dapp开发(锁仓复利)

薇電13242772558

智能合约 dapp

五分钟拿捏Python字典-Python3入门必备[字典详细操作]

迷彩

Python 字典 7月月更 入门教程

在上海想学web前端课程如何选择

小谷哥

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