加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 安全 > 正文

MySQL VS MongoDB 你会如何选择?

发布时间:2021-01-12 12:19:30 所属栏目:安全 来源:网络整理
导读:副标题#e# 《MySQL VS MongoDB 你会如何选择?》要点: 本文介绍了MySQL VS MongoDB 你会如何选择?,希望对您有用。如果有疑问,可以联系我们。 1. 概述 1.1 背景 数据库几乎是线上业务架构里的核心服务,在海量数据环境下,数据库的读写效率直接影响着一款
副标题[/!--empirenews.page--]

《MySQL VS MongoDB 你会如何选择?》要点:
本文介绍了MySQL VS MongoDB 你会如何选择?,希望对您有用。如果有疑问,可以联系我们。

1. 概述

1.1 背景

数据库几乎是线上业务架构里的核心服务,在海量数据环境下,数据库的读写效率直接影响着一款产品的体验,因此从一开始选择一款适合适的数据库就显得尤为重要.

目前主流的开源方案中,最火的莫过于是MySQL和MongoDB了.而长期以来在当今数据库市场上,MySQL无疑是占有一席之地,作为一个开源的关系型数据库,MySQL被大量应用在各大网站后台,哪怕是我们的主流游戏生产环境中.而存在于另外一个世界的非关系型数据库MongoDB,却很不安分,混入了这场平静,来一个“抢夺战”.

相信大多数人都知道MongoDB是一种文件导向的数据库管理系统,属于一种通称为NoSQL的数据库,是10gen公司旗下的开源产品,其内部数据存储的方式与传统的关系型数据有很大差别.它是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路.

那到底我们该选择MySQL 还是 MongoDB呢?如果你的业务必须依赖事务关系的话,那选MySQL无疑了,但是有时候我们需要做一些复杂的聚合或需要灵活存取的场景,那么选哪一个更好,则需要认真评估了.为了让大家在一开始选择数据库时有个参考数据,我们对MongoDB 3.0.7和MySQL 5.5.40分别在大数据(百万级~千万级)环境下的平均时延、吞吐量进行了研究对比.

1.2 工具简介

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.而ycsb(Yahoo! Cloud Serving Benchmark)则是雅虎开源的一款通用的、针对各类NoSQL产品的性能测试工具.

接下来我们简单的介绍一下用于本次研究对比的压测工具:

2. 安装说明

2.1 基础环境

ycsb工程依赖Java、maven,有maven环境后就可以直接在ycsb根目录下运行package任务.而sysbench编译安装需要automake,于是:

#yum -y install mysql-devel automake libtool git wget unzip python-setuptools java-devel
#easy_install argparse
#wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
#tar xf apache-maven-3.1.1-bin.tar.gz -C /usr/local/
#cd /usr/local && ln -s apache-maven-* maven
# echo “export PATH=/usr/local/maven/bin:$PATH” >> /etc/profile
# source /etc/profile

2.2 下载并安装

2.2.1 sysbench

我们选择最新版的sysbench 0.5版本来测试数据库性能,该版本优化了oltp的lua脚本测试和实时显示功能.sysbench默认支持MySQL,如果需要测试Oracle/PostgreSQL,则在configure时需要加上–with-oracle或者–with-pgsql参数.

# wget -O sysbench-0.5.zip https://codeload.github.com/akopytov/sysbench/zip/0.5
#unzip sysbench-0.5.zip
# cd sysbench-0.5
#chmod +x autogen.sh
#./autogen.sh
#./configure –prefix=/usr/local/sysbench –with-mysql –with-mysql-includes=/usr/local/mysql/include –with-mysql-libs=/usr/local/mysql/lib
#make && make install
# echo “export PATH=/usr/local/maven/bin:/usr/local/sysbench/bin:$PATH” >> /etc/profile
# source /etc/profile

检查是否安装成功:

2.2.2 ycsb

我们同样选择最新版的ycsb来进行测试并使用mvn编译安装.

#cd /usr/local/ && git clone https://github.com/brianfrankcooper/YCSB.git
# ln -s YCSB ycsb
#cd ycsb && mvn -pl com.yahoo.ycsb:mongodb-binding -am clean package
#echo “export PATH=/usr/local/ycsb/bin:/usr/local/maven/bin:/usr/local/sysbench/bin:$PATH” >> /etc/profile
#source /etc/profile

检查是否安装成功:

3. 使用说明

3.1 基础环境
为了更好地理解后面的测试过程,我们先对sysbench和ycsb的使用参数进行详细说明.

3.1.1 sysbench

#./bin/sysbench –test= [options]…

3.1.1 sysbench
(1) options参数

(2) command参数

3.1.1 ycsb

#./bin/ycsb command database [options]

(1) options参数

(2) command参数

4. 性能评估

4.1 测试目的

在大数据环境下,对比MySQL 5.5.40与MongoDB 3.0.7的只读、只更新、只插入,混合模式(读:写=3:7)下的平均时延、吞吐量.

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读