·什么是nosql (Not Only Sql)
非关系型数据库。是不同于传统的关系型数据库的 数据库管理系统的统称。
用于超大规模的数据的存储。 数据存储不需要固定模式,无需多余操作就可以横向扩展。
为什么用Nosql
·CAP定理
对于一个分布式计算系统来说,不可能同时满足三点:一致性(Consistency)、可用性(Availability)、分割容忍(分区容错性 Partition tolerance)。
CA - 单点集群,满足一致性、可用性的系统。 可扩展性不强
CP - 满足一致性、分区容忍性的系统。 性能不强
AP - 满足可用性、分区容忍性的系统。 对一致性要求低
·优点
高可扩展性
分布式计算
低成本
架构的灵活性,半结构化数据
没有复杂的关系
·缺点
没有标准化
有限的查询功能
最终一致是不直观的程序
·NoSql 数据库四大分类
键值(key-value)存储数据库
列存储数据库
文档型数据库
图形数据库
·适用场景
1、数据模型比较简单。
2、需要灵活性更强的IT系统。
3、对数据库性能要求较高。
4、不需要高度的数据一致性。
5、对于给定key,比较容易映射复杂值的环境。
·NOSQL 与传统关系性数据库比较
1、存储方式
nosql 大块的组合在一起,通常存储在数据集中,像文档、键值对、或者图结构。
关系型数据库 表格式的,存储在表的行和列中,容易关联协作存储,提取数据方便。
2、存储结构
nosql 基于动态结构,使用与非结构化数据,很容易适用数据类型和结构变化
关系型数据库 结构化数据,列预先定义了结构,描述了数据的形式和内容。带来可靠性和稳定性,修改困难。
3、存储规范
nosql 存储在平面数据集中,数据可能重复,单个数据很少分开,存储成一个整体。便于读写。
关系型数据库 为了规范性,把数据分割为最小的关系表避免重复。管理清晰,多表操作麻烦。
4、存储扩展
nosql 横向扩展,天然分布式存储,可以向资源池添加更多的数据库来分担负载
关系型数据库 纵向扩展,要提高处理能力,就要使用速度更快的计算机。
5、查询方式
nosql 以块为单元操作数据,非结构化查询语言(UNQI,没标准),
关系型数据库 通过结构化查询语言操作数据库(sql),业界标准增删改查
6、事务
nosql BASE(基本可用、柔性事务、最终一致性)原则,在CAP(一致性、可用性、分区容忍度)中任选两项,对事务支持不是很好。
关系型数据库 ACID规则,支持对事务原子性细粒度控制,易于回滚。
7、性能
nosql key-value类型,存储在内存中,容易存储,对数据一致性是弱要求,无需sql解析,提高读写性能。
关系型数据库 读写性能差,面对海量数据时候效率低。
8、授权方式
nosql 主流nosql数据库有 redis,memcache,MongoDB。开源的,免费
关系型数据库 SQL Server、mysql、Oracle,大多数是付费的,价格昂贵,成本高。