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

MySQL VS MongoDB 你会如何选择?

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

MySQL VS MongoDB 你会如何选择?

图4.6 《平均时延:每次操作所消耗的平均时间》

PS:上图中MongoDB在300W记录前性能要优于MySQL,但是随着数据量越大性能急剧下降,到1000W记录时已经无法与MySQL竞争了.这里也反应出MySQL不愧是优秀的数据库,非常稳定,而MongoDB很不稳定.另外,以上测试中MongoDB都是指定了_id插入的,其效率比不指定_id相差很远.这是因为它的_id通过计算机特征值、时间、进程ID与随机数来确保生成的_id是唯一的,每次插入都需要检查该_id是否存在,所以严重影响其效率.当然如果业务允许,你也可以不指定_id插入,提高性能.

图4.7 《吞吐量:单位时间内的操作数》

图4.8 《平均时延:每次操作所消耗的平均时间》

PS:以上混合模式是主要模拟了游戏的实际场景(写为主),结合前面的分步测试结果,这里MongoDB比MySQL性能相差至少4倍,会不会感到理所当然?

5. 分析总结

通过以上测试发现MySQL和MongoDB各有优势,因此我们给出如下建议作为参考,具体选择哪款数据库请根据自身业务场景来决定.

(1) 相比较MySQL,MongoDB数据库更适合那些读作业较重的任务模型.MongoDB能充分利用机器的内存资源.如果机器的内存资源丰富的话,MongoDB的查询效率会快很多.

(2) 相比MongoDB,MySQL数据库更适合插入、更新为主的任务模型,其效率相比于MongoDB优势非常明显.

(3) 在带”_id”插入数据的时候,MongoDB的插入效率其实并不高.如果想充分利用MongoDB性能的话,推荐采取不带”_id”的插入方式,然后对相关字段作索引来查询.

(4) MongoDB适合那些对数据库具体数据格式不明确或者数据库数据格式经常变化的需求模型,而且对开发者十分友好.

(5) 稳定性方面,MongoDB不如MySQL,MySQL不愧是一种非常稳定的数据库,无论在指定主键还是在不指定主键插入的情况下,其效率都差不了太多,其稳定性还是毋庸置疑.

(6) 事务支持方面,MySQL占绝对优势,MongoDB对事务关系支持薄弱,这也是所有NoSQL数据库共同的缺陷,不过NoSQL并不是为了事务关系而设计的,具体应用还是很需求.

结合我们的游戏业务场景来看,选用MySQL无疑是最理想的选择.但是有时候我们的游戏数据分析后台需要做很大量的统计、展示,这对读取性能要求较高,如果同时能够结合MongoDB的来提升读取性能可能更有利于业务的扩展性.主要是把用户主数据写到MySQL,用户日志类数据写到MongoDB,然后游戏数据分析后台直接读取MongoDB做统计分析工作.

6. 参考

1) https://github.com/brianfrankcooper/YCSB
2) http://seanlook.com/2016/03/28/mysql-sysbench

原文来自微信公众号:运维军团

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

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

热点阅读