加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 与 MongoDB 差别

发布时间:2023-09-18 15:14:34 所属栏目:MySql教程 来源:
导读:MySQL

关系型数据库。

在不同的引擎上有不同 的存储方式。

查询语句是使用传统的 sql 语句,拥有较为成熟的体系,成熟度很高。

开源数据库的份额在不断增加,mysql 的份额页在持续增长。

缺点就
MySQL
 
关系型数据库。
 
在不同的引擎上有不同 的存储方式。
 
查询语句是使用传统的 sql 语句,拥有较为成熟的体系,成熟度很高。
 
开源数据库的份额在不断增加,mysql 的份额页在持续增长。
 
缺点就是在海量数据处理的时候效率会显著变慢。
 
Mongodb
 
非关系型数据库 (nosql), 属于文档型数据库。先解释一下文档的数据库,即可以存放 xml、json、bson 类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。数据结构由键值 (key=>value) 对组成。
 
存储方式:虚拟内存 + 持久化。
 
查询语句:是独特的 Mongodb 的查询方式。
 
适合场景:事件的记录,内容管理或者博客平台等等。
 
架构特点:可以通过副本集,以及分片来实现高可用。
 
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
 
成熟度与广泛度:新兴数据库,成熟度较低,Nosql 数据库中最为接近关系型数据库,比较完善的 DB 之一,适用人群不断在增长。
 
优势:
 
快速!在适量级的内存的 Mongodb 的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快,
 
高扩展!
 
自身的 Failover 机制!
 
json 的存储格式!
 
缺点:主要是无事物机制!
 
分析一下 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 还有一个最大的缺点,就是它占用的空间很大,因为它属于典型空间换时间原则的类型。那么它的磁盘空间比普通数据库会浪费一些,而且到目前为止它还没有实现在线压缩功能,在 MongoDB 中频繁的进行数据增删改时,如果记录变了,例如数据大小发生了变化,这时候容易产生一些数据碎片,出现碎片引发的结果,一个是索引会出现性能问题,
 
另外一个就是在一定的时间后,所占空间会莫明其妙地增大,所以要定期把数据库做修复,定期重新做索引,这样会提升 MongoDB 的稳定性和效率。在最新的版本里,它已经在实现在线压缩,估计应该在 2.0 版左右,应该能够实现在线压缩,可以在后台执行现在 repair DataBase 的一些操作。如果那样,就解决了目前困扰我们的大问题。
 
 

(编辑:聊城站长网)

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

    推荐文章