保持对代码的热爱并保持怀疑态度
mongodb和sql的区别
MongoDB 是一个基于分布式文件存储的数据库。
由 C++ 语言编写,是一个开源数据库系统。
旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
关系型数据库(mysql)与非关系型数据库(mongodb)的区别:
了解两方的优缺点以及特性:
关系型数据库:
特性:
- 关系型数据库是指采用了关系模型来组织数据的数据库
- 关系型数据库的最大特点就是事务的一致性
- 简单来说,关系模型指的就是二维表格模型,关系型数据库就是由二维表及其之间的关联组成的数据组织
特性:
- 容易理解
- 使用方便
- 易于维护
- 支持SQL,可用于复杂的查询
缺点:
- 为了维护一执行需要消耗大量的性能,影响读写
- 固定的表结构
- 高并发读写需求
- 海量数据的高效率读写
非关系型数据库:
特性:
- 使用键值对存储数据
- 分布式
- 不支持ACID特性
- 非关系型数据库严格上来说,不算是一种数据库,应该是一种数据结构化存储方法的集合
优点:
- 无需经过sql层的解析,读写性能高;
- 基于键值对,数据没有耦合性,容易扩展;
- 存储数据的格式,nosql使用key:val的形式,文档的形式,图片形式等等,而关系型数据库则只支持基础类型
缺点:
- 不提供sql支持,学习成本高
- 无事务处理,附加功能和报表支持也不好