1. NoSQL
NoSQL(Not Only SQL),泛指非关系型的数据库(mysql、oracle、sqlserver都是关系型数据库)。
1.1 NoSQL特点数据之间无关系,随意扩展数据存储简单,可以存在内存中,读写速度快不需要建表、字段。自定义格式
1.2 NoSQL数据库的多维度分析图表
1.2.1 共同特征不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。BASE:相对于事务严格的ACID(原子性,一致性,隔离性,持久性)特性,NoSQL数据库保证的是BASE(BA——基本可用,S——软状态,柔性事务,E——最终一致性)特性。【注】CAP原理(C——一致性,A——可用性,P——分区容错性,当前NoSQL大部分满足了AP原理)
1.2.2 适用场景
NoSQL数据库在以下的这几种情况下比较适用:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。