【QCon】即将开幕,聚焦于生成式 AI 领域的最新发展,让参会者先看到未来。 了解详情
写点什么

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 读者交流群)。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2015-06-18 09:1619815
用户头像

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

关注

评论

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

高级前端一面常考react面试题总结

beifeng1996

React

Docker上手:step by step

无人之路

Docker

FLStudio2023中文版远程安装下载

茶色酒

flstudio FLStudio21 FLStudio21.0.0

Verilog 时序控制

攻城狮Wayne

Verilog Verilog语法 Verilog时序控制

易观分析:手机银行季度活跃用户突破7亿人,个人养老金业务争夺战开启

易观分析

手机银行 个人养老金

JAVA中生成随机数Random VS ThreadLocalRandom性能比较

JAVA旭阳

Java

Ubuntu无法切换到桌面tty7解决

alps2006

ubuntu

一年半经验如何准备前端面试

loveX001

JavaScript

高级前端一面经典手写面试题汇总

helloworld1024fd

JavaScript

spring boot+mybatis整合

@下一站

MySQL mybatis 12月日更 12月月更 springboot框架

一个将日志消息仅区分为 info 和 error 的实践分享

Tiger Wang

开源 最佳实践 日志

知道这个网站你就不用买实体书了

邱比特讲编程

程序员 资源 电子书 大学生

中小企业运营自媒体为何多以失败告终

石头IT视角

一天梳理完React所有面试考察知识点

beifeng1996

React

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

聚焦技术,锐意创新,GaussDB给世界一个更优选择

Geek_2d6073

Best Machine Learning Tools for Java

Mahipal_Nehra

Java AI Machine Learning tools best tools

Spark架构

穿过生命散发芬芳

spark 12月月更

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

安全可信 | 强墙出击!天翼云Web应用防火墙(原生版)硬核亮相!

天翼云开发者社区

安全 防火墙

纷繁复杂见真章 华为云大型产品需求管理利器CodeArts Req解读

Geek_2d6073

开放云主机端口

好吃不贵

JS模块化—CJS&AMD&CMD&ES6-前端面试知识点查漏补缺

loveX001

JavaScript

前端vue面试题汇总

bb_xiaxia1998

Vue

假如面试官要你手写一个promise

helloworld1024fd

JavaScript

Docker进阶:step by step

无人之路

Docker

高级前端一面必会react面试题(持续更新中)

beifeng1996

React

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

Python:界面开发,wx入门篇

eng八戒

Python PyQt GUI WxPython tkinter

一道React面试题把我整懵了

beifeng1996

React

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