谈谈mongodb,mysql的区别和具体应⽤场景最近对数据库⽐较感兴趣,于是就去研究了下部分相关热门的数据库。
MySQL
关系型数据库。
在不同的引擎上有不同的存储⽅式。
查询语句是使⽤传统的sql语句,拥有较为成熟的体系,成熟度很⾼。
开源数据库的份额在不断增加,mysql的份额页在持续增长。
缺点就是在海量数据处理的时候效率会显著变慢。
Mongodb
⾮关系型数据库(nosql ),属于⽂档型数据库。先解释⼀下⽂档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备⾃述性(self-describing),呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。
存储⽅式:虚拟内存+持久化。
查询语句:是独特的Mongodb的查询⽅式。
适合场景:事件的记录,内容管理或者博客平台等等。
架构特点:可以通过副本集,以及分⽚来实现⾼可⽤。
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从⽽达到⾼速读写。
成熟度与⼴泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,⽐较完善的DB之⼀,适⽤⼈不断在增长。
优势:
快速!在适量级的内存的Mongodb的性能是⾮常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得⼗分快,
⾼扩展!
⾃⾝的Failover机制!
json的存储格式!
缺点:主要是⽆事物机制!
分析⼀下Mysql和Mongodb应⽤场景
mongodb和mysql结合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 来使⽤。亦或是仅作⽇志收集分析。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论