SQL与NoSQL的区别
1、NoSQL的数据结构比较简单,数据库的SQL语句强大,支持更为复杂的计算
2、NoSQL的数据主要存储在内存中(部分可以持久化到磁盘),而数据库主要是磁盘
3、NoSQL的数据完整性、事务能力、安全性、可靠性及可扩展性远不及数据库
4、NoSQL基于内存存储,停电或者机器故障容易造成数据丢失,持久化能力有限,而数据库基于磁盘,不存在这个问题
SQL数据库:
· 使用表存储相关的数据
· 在使用表之前需要先定义标的模式
· 鼓励使用规范化来减少数据的冗余
· 支持使用JOIN操作,使用一条SQL语句从多张表中取出相关的数据
· 需要满足数据完整性约束规则
· 使用事务来保证数据的一致性
· 能够大规模的使用
· 使用强大的SQL语言进行查询操作
· 提供大量的支持,专业技能和辅助工具
NoSQL数据库:
· 使用类JSON格式的文档来存储键值对信息
· 存储数据不需要特定的模式
· 使用非规范化的标准存储信息,以保证一个文档中包含一个条目的所有信息
· 不需要使用JOIN操作
· 允许数据不用通过验证就可以存储到任意的位置
· 保证更新的单个文档,而不是多个文档
· 提供卓越的性能和可扩展性
· 使用JSON数据对象进行查询
· 是一种新型的技术
SQL数据库适合那些需求确定和对数据完整性要去严格的项目。NoSQL数据库适用于那些对速度和可扩展性比较看重的那些不相关的,不确定和不断发展的需求。简单来说就是:
· SQL是精确的。它最适合于具有精确标准的定义明确的项目。典型的使用场景是在线商店和银行系统。
· NoSQL是多变的。它最适合于具有不确定需求的数据。典型的使用场景是社交网络,客户管理和网络分析系统。
很少有项目能够很好的适用于一种数据库。如果你对数据的需求比较小或是非标准化的数据任何一种数据库都是可以的。你比我更了解你的项目,我不建议你将SQL上的数据移植到NoSQL上反之亦然,除非它能够提供非常可观的收益。当然选择权在于你自己。在项目的一开始就要考虑好使用它们的利弊,这样才不会导致选择错误。
本文出自 “北林” 博客,请务必保留此出处:http://www.cnblogs.com/beilin/p/6007080.html