本文目录导航:
谈谈mongodb,mysql的区别和详细运行场景
(1)MySQL数据库:
属于相关型数据库。
在不同的引擎上有不同的存储方式。
查问语句是经常使用传统的sql语句,领有较为成熟的体系,成熟度很高。
开源数据库的份额在始终参与,mysql的份额页在继续增长。
缺陷就是在海量数据处置的时刻效率会清楚变慢。
(2)Mongodb数据库:
非相关型数据库(nosql ),属于文档型数据库。
先解释一下文档的数据库,即可以寄存xml、json、bson类型系那个的数据。
这些数据具有自述性(self-describing),出现分层的树状数据结构。
数据结构由键值(key=>value)对组成。
存储方式:虚构内存+耐久化。
查问语句:是共同的Mongodb的查问方式。
适宜场景:事情的记载,内容治理或许博客平台等等。
架构特点:可以经过正本集,以及分片来成功高可用。
数据处置:数据是存储在硬盘上的,只不过须要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而到达高速读写。
成熟度与宽泛度:新兴数据库,成熟度较低,Nosql数据库中最为凑近相关型数据库,比拟完善的DB之一,实用人群始终在增长。
剖析一下Mysql和Mongodb运行场景
1.假设须要将mongodb作为后端db来替代mysql经常使用,即这里mysql与mongodb 属于平行级别,那么,这样的经常使用或许有以下几种状况的考量: (1)mongodb所担任局部以文档方式存储,能够有较好的代码亲和性,json格局的间接写入繁难。
(如日志之类) (2)从data models设计阶段就将原子性思考于其中,无需事务之类的辅佐。
开发用如nodejs之类的言语来启动开发,对开发比拟繁难。
(3)mongodb自身的failover机制,无需经常使用如MHA之类的方式成功。
2.将mongodb作为相似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志搜集剖析。
思考到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时刻将mongodb做为辅佐mysql而经常使用的类redis memcache 之类的缓存db来经常使用。
亦或是仅作日志搜集剖析。
参考原文:
mongodb和mysql的区别
MongoDB(文档型数据库):提供可扩大的高性能数据存储一、1、基于散布式文件存储2、高负载状况下参与更多节点,可以保障主机性能3、将数据存储为一个文档二、比拟1、稳固性2、索引,索引放在内存中,能够优化随机读写的性能。
假设索引不能齐全放在内存,一旦出现随机读写比拟高的时刻,就会频繁地启动磁盘替换,MongoDB的性能就会急剧降低3、占用的空间很大,由于它属于典型空间换期间准则的类型。
那么它的磁盘空间比普通数据库会糜费一些,而且到目前为止它还没有实如今线紧缩配置,在MongoDB中频繁的启动数据增删改时,假设记载变了,例如数据大小出现了变动,这时刻容易发生一些数据碎片,出现碎片引发的结果,一个是索引会出现性能疑问,另外一个就是在必定的期间后,所占空间会莫名其妙地增大,所以要活期把数据库做修复,活期从新做索引,这样会优化MongoDB的稳固性和效率。
在最新的版本里,它曾经在实如今线紧缩,预计应该在2.0版左右,应该能够实如今线紧缩,可以在后盾口头如今repair>千万别用MongoDB?真的吗
为什么这么说?数据库应该是正确的,或是尽或许的正确,由于数据库的失误解比其它失误危害更大。
不只仅是由于其对运转,性能,开支,和其价值影响渺小,还由于其连带的物品。
匆忙去去移植 TB 级的数据相比起去修正代码中的一个逻辑失误来说是一个很渺小的上班。
而在系统出疑问后须要复原 TB 级的数据,你会被硬盘的速度所限度,你会有一种悲观的觉得。
数据库是一个很复杂的系统,关于开发者来说就像一个黑盒一样。
你须要对你所驳回的数据库持相对信赖的态度,信赖它会做正确的事,并会坚持分歧性和可用性。
为什么 MongoDB 会盛行?说句公平话,咱们必须抵赖 MongoDB 是盛行的,由于上方这些要素让其盛行变得很正当:它十分容易地运转十分自在的 Schema 模型,而且可以很容易地和 JSON 类的数据结果映射起来,这关于程序员来于有很大的感化力(它齐全合乎程序员的逻辑思想),而且,程序员总是在名目可以做技术选型的人。
成熟和强健,track record,被实在的 Use Case 测试过,等等。
关于那些青睐选用成熟的技术的系统治理员和经营专业来说,这是一个很典型的选用。
它单系统,低并发读的性能测试十分令人惊讶,而关于那些没有阅历的评价者来说,这基本过去说是最关键的。
如今,你或许正在开发一个随意玩一玩的网站,或是一个原型,或是那种只思考开发速度不思考别的的名目。
诚恳说,关于这种名目,次要你用什么样的技术,只需搞定上班就行了。
然而,假设你想要在 MongoDB 上搞一个大规模的系统,在上方运转实在的业务,那么,请不要用 MongoDB。
转载,仅供参考。