写点什么

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

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

关注

评论

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

火山引擎数智平台VeDI:A/B实验互斥域流量分配体系上线

字节跳动数据平台

ab测试

使用豆包MarsCode 来处理 Excel 的数据吧!

豆包MarsCode

人工智能 程序员 AI

2024海南等保测评机构名单汇总

行云管家

等保 等保测评 海南

全局视角看技术-Java多线程演进史

京东科技开发者

CAE和CAD的区别

智造软件

计算机 CAE cad 仿真技术 辅助设计

【质量视角】可观测性背景下的质量保障思路

京东科技开发者

为什么说“全面绩效”是企业管理的必选项?

ToB行业头条

如何对 GitLab 老旧版本进行升级?

极狐GitLab

gitlab 安全漏洞

人机识别到底难在哪?

芯盾时代

身份安全

强大的局域网远程播放 nPlayer for Mac v1.4.0中文激活版

Rose

QCA9880 vs QCA9882: Finding the Perfect Wi-Fi Solution for Your Business

wallyslilly

QCA9880 QCA9882

Caffeine学习笔记

京东科技开发者

如何用支付宝实现靠脸吃饭

盐焗代码虾

支付宝 刷脸支付 一脸通行

Excelize 开源基础库 2.9.0 版本正式发布

xuri

golang 开源 办公自动化 Excelize 办公软件

第三届OpenHarmony技术大会应用生态实践分论坛成功举办

科技热闻

近期,除了“纯血鸿蒙公测”,校园开发者还有这件事要知道!

YG科技

HPE Aruba Networking连续七年蝉联Gartner SD-WAN魔力象限领导者

科技热闻

大模型时代的数据治理之道|StartDT Talk

奇点云

人工智能 大数据 AI 数据治理 大模型

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.7版已发布

JackJiang

MobileIMSDK 即时通讯;IM;网络编程 RainbowChat

淘宝商品评论API:获取商品升级迭代后的用户反馈

技术冰糖葫芦

API 接口 API 文档 API 测试 API 性能测试

IPQ9574,IPQ5322,IPQ9570-WiFi 7 chip diversity: Performance, application and market differences analysis

wifi6-yiyi

5G router WiFi7

阿里Java面试手册-Java面试题总结(附答案)——互联网大厂都在问的Java面试题,而你从没看过!

程序员高级码农

Java 面试 架构师 Java’ Java 面试题 春招‘

CNCC | 超强阵容!CCF-网易雷火联合基金研讨会嘉宾率先揭晓

网易伏羲

人工智能 网易伏羲 cncc

软件测试学习笔记丨人工智能 | mixtral大模型

测试人

人工智能 软件测试

用户的声音| 出色的表格解析能力!TextIn文档解析助力金融信息化企业数据底座建设

合合技术团队

金融 #科技

在Abaqus中施加恒定载荷应选择静态还是动态分析步?

思茂信息

载荷 abaqus 有限元分析

阿里架构师:天天高并发,这个时代达不到百万以上的并发量都不叫高并发!!!

程序员高级码农

多线程 架构师 Java高并发 Java’ 高并发‘’

Java程序员真的还有未来吗?如何备战2025春招Java面试?并狂拿大厂offer?(java高级岗)

程序员高级码农

Java 面试 架构师 Java’ 面试‘ Java 面试题

RAG vs 长上下文 LLMs:谁主沉浮?

Baihai IDP

程序员 AI LLMs rag Baihai IDP

GreatSQL 在SQL中使用 HINT 语法修改会话变量

GreatSQL

数据库

基于Ascend C的Matmul算子性能优化最佳实践

华为云开发者联盟

人工智能 性能优化 算子 Ascend

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