QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

阿里低代码引擎怎么样,好不好用?

优秀

低代码

网络安全必学SQL注入

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

工赋开发者社区 | 研究了代码质量后,开发速度提高了 2 倍,bug 减少了 15 倍

工赋开发者社区

JAVA中如何实现代码优化(技巧讲解)

叶秋学长

Java 优化 技巧总结 11月月更

华为发布鸿蒙开发套件 全面加速推进鸿蒙生态

科技汇

产品负责人的轻度思考,6个小策略,面对迭代Sprint评审会

老彦

敏捷 回顾会 产品负责人

如虎添翼!微软OneNote迎来新利器!

Jackpop

2022-11-04:给定一个正数n,表示有多少个节点 给定一个二维数组edges,表示所有无向边 edges[i] = {a, b} 表示a到b有一条无向边 edges一定表示的是一个无环无向图,也

福大大架构师每日一题

算法 rust 福大大

hadoop2.7集群初始化之后没有DataNode的问题

程序员欣宸

大数据 hadoop 11月月更

卷积模型分类图片

芯动大师

Python 卷积网络 11月月更

如何通俗易懂理解Python类和面向对象?

Jackpop

独有且优质!这些Mac软件绝了!

Jackpop

工赋开发者社区 | SPL工业智能:发现时序数据的异常

工赋开发者社区

云原生训练营课程总结

Rex

Java中的static关键字详解

共饮一杯无

Java 关键字 11月月更

华为高清空间音频将登陆座舱,打造移动“车载大剧院”

最新动态

不借助 Fiori client,直接在手机浏览器里调用 SAP UI5 BarcodeScanner 实现条形码扫描的可能性?

汪子熙

sdk SAP Fiori SAP UI5 11月月更

华为阅读“WebBrain搜索”和“知识图谱”在HDC2022首次亮相!

叶落便知秋

Mac上有那些你认为极其好用的app?

Jackpop

作为资深Mac用户,有哪些你相见恨晚的软件值得推荐?

Jackpop

Vue-Vuex学习

格斗家不爱在外太空沉思

vue.js vuex 11月月更

NB的Github项目,看到最后一个我惊呆了!

艾小仙

Java GitHub

【C语言】case 关键字

謓泽

11月月更

chrome调试工具之network

格斗家不爱在外太空沉思

浏览器 11月月更 浏览器调试

【愚公系列】2022年11月 微信小程序-Request网络请求的封装

愚公搬代码

11月月更

全新升级的鸿蒙开发套件,你想知道的都在这里

HarmonyOS开发者

HarmonyOS

Vue组合式函数(一)

Augus

vue.js 11月月更

HNCTF--Misc部分题解

我是一个茶壶

11月月更 杂项 HNCTF

低代码实现探索(五十一)组件的配置

零道云-混合式低代码平台

vue中网络请求axios的使用和封装

格斗家不爱在外太空沉思

Vue axios 11月月更

WEB-INF/web.xml泄露

我是一个茶壶

WEB安全 11月月更 源码泄露

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