开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
15、mysql 和 mongoDB 有什么区别
MySQL
1)关系型数据库
2)在不同的引擎上有不同 的存储方式。
3)查询语句是使用传统的 sql 语句,拥有较为成熟的体系,成熟度很高。
4)开源数据库的份额在不断增加,mysql 的份额页在持续增长。
5)缺点就是在海量数据处理的时候效率会显著变慢。
MongoDB
非关系型数据库(Nosql),属于文档型数据库。先解释一下文档的数据库,即可以存放 xml、json、bson(即 Binary-JSON)类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。MongoDB 是由 C++语言编写的,主要是在为 WEB 应用提供可扩展的高性能数据存储解决方案。
存储方式:虚拟内存+持久化。
查询语句:是独特的 Mongodb 的查询方式。
适合场景:事件的记录,内容管理或者博客平台等等。
架构特点:可以通过副本集,以及分片来实现高可用。
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
成熟度与广泛度:新兴数据库,成熟度较低,Nosql 数据库中最为接近关系型数据库,比较完善的 DB 之一,适用人群不断在增长。
MongoDB 的优势:
1)快速!在适量级的内存的 Mongodb 的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快
2)高扩展。
3)自身的 Failover 机制。
4)json 的存储格式。
5)内置 GridFS,支持大容量的存储。
6)内置 Sharding,分片简单。
7)高扩展。
8)海量数据下,性能优越。
9)支持自动故障恢复(复制集)。
MongoDB 的缺陷:
1)不支持事务操作
2)占用空间过大。
3)MongoDB 没有如 MySQL 那样成熟的维护工具。
4)无法进行关联表查询,不适用于关系多的数据。
5)复杂聚合操作通过 mapreduce 创建,速度慢
6)模式自由, 自由灵活的文件存储格式带来的数据错误
7)MongoDB 没有如 MySQL 那样成熟的维护工具,这对于开发和 IT 运营都是个值得注意的地方