写点什么

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

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

关注

评论

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

开启未来出行新纪元:44.8英寸超视界9K疾速屏智能座舱,高端车载显示技术引领用户体验新变革!

爱极客侠

聊聊缺陷逃逸率

老张

质量保障 缺陷管理 缺陷预防

如何通过算法触达,高效唤醒沉睡会员?奇点云“向价值进发”直播回顾

先锋IT

FT-FMEA融合混沌演练,零售运营系统韧性架构在线验证实践

华为云开发者联盟

开发 华为云 华为云开发者联盟 确定性运维 企业号2024年5月PK榜

analyze 采样率是怎么算出来的(v6.5.3)

TiDB 社区干货传送门

TiDB 源码解读 6.x 实践

聊聊Python多进程

我再BUG界嘎嘎乱杀

Python 编程 后端 多进程 开发语言

天翼AI云电脑重塑未来工作方式的利器,邀您5月25日相聚福州!

编程猫

2024年API趋势,哪些API将增加市场份额?

幂简集成

API

基于大语言模型的应用

悦数图数据库

大语言模型

浪潮信息-龙蜥技术认证上线,培训专场圆满召开

OpenAnolis小助手

开源 操作系统 龙蜥社区 浪潮信息 龙蜥人才培养计划

基于龙蜥衍生版 KeyarchOS 的 LVM 卷管理技术与实践 | 干货推荐

OpenAnolis小助手

操作系统 技术干货 龙蜥社区 龙蜥操作系统 浪潮信息

多点 x TiDB:在出海多云多活架构中,多点运维 TiDB 的实战分享

TiDB 社区干货传送门

实践案例 社区活动

启航TiDB:调试环境搭建(vscode+wsl+pd)

TiDB 社区干货传送门

开发语言 TiDB 源码解读 应用适配

云计算技术架构揭秘与发展

Finovy Cloud

云计算 云计算架构

深入理解Python中的深拷贝与浅拷贝

我再BUG界嘎嘎乱杀

Python 编程语言 后端 开发语言 深拷贝与浅拷贝

故障排查难?xpu_timer 让大模型训练无死角!

可信AI进展

GPT-4o 后 LLM 时代 RTC 需求讨论会丨社区伙伴活动分享

RTE开发者社区

Vite 的预构建原理与实践| 京东物流技术团队

京东科技开发者

多点数千套集群实践:从“MySQL 又不是不能用,为什么选择 TiDB?”到“能用 TiDB 就不用 MySQL”

TiDB 社区干货传送门

实践案例 社区活动 管理与运维 TUG 话题探讨 数据库前沿趋势

【论文速读】|大语言模型是少样本测试员:探索基于LLM的通用漏洞复现

云起无垠

数据库与人工智能的关系

悦数图数据库

图数据库

如何通过店铺集群实现高效库存规划

第七在线

CaffeineCache Api介绍以及与Guava Cache性能对比| 京东物流技术团队

京东科技开发者

全球最大图片社交网站Pinterest为什么会放弃HBase而改用TiDB

TiDB 社区干货传送门

社区活动

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