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,于是:
2.2 下载并安装 2.2.1 sysbench 我们选择最新版的sysbench 0.5版本来测试数据库性能,该版本优化了oltp的lua脚本测试和实时显示功能.sysbench默认支持MySQL,如果需要测试Oracle/PostgreSQL,则在configure时需要加上–with-oracle或者–with-pgsql参数.
检查是否安装成功: 2.2.2 ycsb 我们同样选择最新版的ycsb来进行测试并使用mvn编译安装.
检查是否安装成功: 3. 使用说明3.1 基础环境 3.1.1 sysbench
3.1.1 sysbench (2) command参数 3.1.1 ycsb
(1) options参数 (2) command参数 4. 性能评估4.1 测试目的 在大数据环境下,对比MySQL 5.5.40与MongoDB 3.0.7的只读、只更新、只插入,混合模式(读:写=3:7)下的平均时延、吞吐量. (编辑:ASP站长网) |