Cassandra HBase和MongoDb性能比较

2024-05-07 09:08

本文主要是介绍Cassandra HBase和MongoDb性能比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Cassandra HBase和MongoDb性能比较

这是一篇基于亚马逊云平台上对三个主流的NoSQL数据库性能比较,在读写两个操作不同的组合情况下性能表现不同。

 

横坐标是吞吐量,纵坐标是延迟,这是一对矛盾,吞吐量越大,延迟越低,代表越好。

 

1. 纯粹插入,Cassandra领先,见下图:

 

2.WorkloadA: 读修改操作各占一半情况下的修改性能:MongoDB明显延迟增加,落败:

 

3.WorkloadB:读修改操作各占一半情况下的读性能:Cassandra落后

 

4.WorkloadB: 95%的read和5%的update以读为主的场景下修改性能:MongoDB落后:

 

5.WorkloadB: 95%的read和5%的update以读为主的场景下读取性能:

三者差不多,HBase好些:

 

6.WorkloadC 100%的read:

 

7.WorkloadD 5%的插入和95%的读的场景下插入性能,Cassandra表现最好。

 

8.WorkloadD 5%的插入和95%的读的场景下读性能,Cassandra表现最好。

 

9.WorkloadF 50%的read-modify-write 和50%的read,读取性能:

 

10.WorkloadF 50%的read-modify-write 和50%的read,修改性能,MongoDB表现最差

 

11.WorkloadF 50%的read-modify-write 和50%的read,read-modify-write性能,MongoDB表现最差

 

12.WorkloadG 90%的插入insert和10%的读取,插入性能:

 

总体个人总结:HBase比较中庸些,适合各种场景,Cassandra适合读写分离的场景,写入场景使用Cassandra,比如插入操作日志,或领域事件日志的写入;而MongoDB适合做读写分离场景中的读取场景,Cassandra与MongoDB之间使用定时同步,适合一致性要求不是特别强的业务。

 

 

不是很懂如何让Cassandra运用在读写分离的场景中?

 

 

2014-02-13 14:57 "@junsiyang"的内容

如何让Cassandra运用在读写分离的场景中 ...

 

在一个大型复杂系统中,以读操作为主的业务和以写操作为主的业务一般总是需要分离,比如CQRS架构,Cassandra可以用来对EventSourcing的领域事件进行记录,而报表等各种复杂条件的实时查询可以使用MongoDB。

 

参考:

纽约证券交易所的实时Map/Reduce大数据分析

 

大数据的Reactive之道

这篇关于Cassandra HBase和MongoDb性能比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966921

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6