MongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库,使用JSON风格来存储数据。其也是非关系型数据库当中功能最丰富、最像关系数据库的。MongoDB由C++编写,其名字来源于"Humongous"这个单词,其宗旨在于处理大量数据。
MongoDB作为如今新兴的Web框架---MEAN架构(MongoDB + Express +AngularJS + NodeJS)的重要组成部分,其如今的发展势头大有与传统Web框架(LAMP、LNMP)抢占市场主流框架的趋势。
MongoDB具有如下优势:
看到MongoDB如此特性和优势,不免勾起了我们的好奇心。这一期的评测报告就着重针对MongoDB的读写性能的进行测试和分析,一起来揭秘一下如今MongoDB在市场上如此被推崇的原因。
① 百万级数据量(500万)
② 千万级数据量(3000万)
③ 亿级数据量(1亿)
①吞吐率
②系统延迟
通过以上测试数据和分析说明,给出如下结论:
【数据库评测报告】第二期:MongoDB的主要内容就是以上这些了(本测试只是针对小规模大数据进行了压力测试,对于大文件的测试以及在集群环境中的性能测试还在酝酿当中),测试在进行过程中由于网络条件、数据库配置等因素的影响,可能无法发挥出TS90机器的最大性能,但在一定程度上对于数据库选型具有参考价值。还想了解测试的参数和细节的朋友可以继续往下读。
设备型号 | 配置描述 | CPU型号 |
---|---|---|
TS90 | 2个12核CPU,256G内存,12*800G SSD,万兆网卡 | E5-2670v3 |
(1)数据库版本
测设设备 | 数据库版本 |
---|---|
TS90 | MongoDB-3.2 |
(1)测试工具
所谓工欲善其事,必先利其器,对于测试工具的选择会直接对测试的结果产生较大影响,一个好的测试首要要解决的必然是选择哪款测试工具。本次测试采用的测试工具是YCSB,肯定很多人会问,为什么NoSQL测试工具那么多,为什么会选择YCSB呢?这款性能测试工具的轻量级设计、多兼容性、支持多场景和多线程等特性都足够碾压其他测试工具的,最重要的是MongoDB官方测试所采用的工具就是YCSB。下面详细给大家介绍一下这款工具的原理和优势。
YCSB是Yahoo开发的一个专门用来对新一代数据库进行基准测试的工具。全名是Yahoo! Cloud Serving Benchmar。上图是YCSB的结构,可以看成是一个数据库客户端。暗色的模块是可以替换的,Workload Executor是产生应用负载的,DB Interface Layer是将特定数据库的API转为YCSB的API,用户可以自定义负载和数据库。
YCSB的包括以下几大特性:
(2)测试流程
①建立测试数据库database;
②在数据库中建立结构相同的3个测试集合(Test_20、Test_80、Test_300);
③利用YCSB的S1场景向测试集合中分别插入一定数量的文档(500万、3000万、1亿);
④利用YCSB的S2~S5场景分别在3个测试集合上进行多线程测试;
⑤结果数据的分析。
(3)测试场景
场景名 | 场景介绍 | 场景配置 |
---|---|---|
S1 | 插入(100% insert) | insertproportion=1 |
S2 | 多读少写(90% read/10% update) | readproportion=0.9 updateproportion=0.1 |
S3 | 读写均衡(50% read/50% update) | readproportion=0.5 updateproportion=0.5 |
S4 | 多写少读(10% read/90% update) | readproportion=0.1 updateproportion=0.9 |
S5 | 只读 (100% read) | readproportion=1 |
(4)测试表结构
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。