AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

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

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

关注

评论

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

2023华为伙伴大会:ISDP发布伙伴体验中心,邀伙伴探索数智化未来

科技怪授

华为ISDP:从ChatGPT说起,企业作业数字化转型需要怎样的平台工具?

科技怪授

Python潮流周刊#3:PyPI 的安全问题

Python猫

Python 编程 rust 安全

使用Go语言实现门面模式:简化复杂子系统的访问

Jack

面试官:SpringBoot可以同时处理多少请求?

做梦都在改BUG

Java spring Spring Boot 框架

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

BlockChain先知

WritingGPT: 基于ChatGPT和AutoGPT打造个人写作团队

俞凡

人工智能

GaussDB(DWS)条件表达式函数返回错误结果集排查

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

低代码的“钱景”——专业的事交给专业的人来做

引迈信息

低代码 JNPF

模板一作业

家有两宝

#架构训练营

C语言编程—数组

梦笔生花

深度学习进阶篇-预训练模型[4]:RoBERTa、SpanBERT、KBERT、ALBERT、ELECTRA算法原理模型结构应用场景区别等详解

汀丶人工智能

自然语言处理 深度学习 预训练模型 Transformer BERT

未来边缘计算:趋于分布式智能

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

无惧面试!2023最新最全Java面试手册全网首次开放下载

程序员小毕

程序员 多线程 高并发 架构师 java面试

【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache抽象详解的核心原理探索

洛神灬殇

spring 缓存 cache 缓存管理

文心一言 VS 讯飞星火 VS chatgpt (23)-- 算法导论4.2 5题

福大大架构师每日一题

福大大 文心一言 讯飞星火

不愧是阿里巴巴内网的“高并发系统设计”学习笔记,全程不讲一句废话!

采菊东篱下

Java 高并发

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

鳄鱼视界

腾讯T8架构师基于SpringBoot2.x搭建分布式架构

做梦都在改BUG

Java spring Spring Boot 框架

2023-05-27:给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两个 相邻 的字符,并将它们交换。 请你返回将 s 变成回文串的 最少操作次数 。 注意 ,输入数据

福大大架构师每日一题

Go 算法 rust 福大大

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

股市老人

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

西柚子

分布式事务的21种武器 - 6

俞凡

架构 云原生

Java 修改项目名称及其相关信息

Andy

一个字牛!腾讯大牛把《数据结构与算法》讲透了,带源码笔记

程序知音

Java 数据结构 算法 后端 数据结构与算法

腾讯T4大牛整理的SpringBoot文档,覆盖你认知中的所有操作

程序知音

Java 架构 微服务 springboot Java进阶

线程的生命周期和常用方法

Java你猿哥

源码 jdk 线程 多线程 Monitor

首页推荐!阿里大佬带你一周刷完Java面试题1700页,offer拿到手软

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

如何通过Python将JSON格式文件导入redis

华为云开发者联盟

Python redis 华为云 华为云开发者联盟 企业号 5 月 PK 榜

高并发封神之作的《亿级流量高并发》惨遭GitHub免费开源

小小怪下士

Java 程序员 高并发

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