mysql 与 MongoDB 差别
发布时间:2023-09-18 15:14:34 所属栏目:MySql教程 来源:
导读:MySQL
关系型数据库。
在不同的引擎上有不同 的存储方式。
查询语句是使用传统的 sql 语句,拥有较为成熟的体系,成熟度很高。
开源数据库的份额在不断增加,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 的一些操作。如果那样,就解决了目前困扰我们的大问题。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐