NoSQL优缺点

NoSQL优缺点

NoSQL(Not Only SQL),意即 “不仅仅是 SQL” ,指的是非关系型的数据库。是一项全新的数据库革命性运动,早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

关系型数据库中的表都是存储一些格式化的数据结构,每条记录的字段的组成都一样,即使不是每条记录都需要所有的字段,但数据库会为每条数据分配所有的字段。

而非关系型数据库以键值对(key-value)存储,它的结构不固定,每一条记录可以有不一样的键,每条记录可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

NoSQL优点

  1. 灵活的数据模型:结构比较丰富,传统关系型数据库都是结构化的表,nosql 可以是列式存储、key-value 和文档存储;
  2. 简单的扩展:典型例子是 Cassandra,由于其架构是类似于经典的 P2P,所以能通过轻松地添加新的节点来扩展这个集群;
  3. 快速的读写:主要例子有 Redis,由于其逻辑简单,而且纯内存操作,使得其性能非常出色,单节点每秒可以处理超过 10 万次读写操作;
  4. 低廉的成本:这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的 License 成本;

NoSQL缺点

  1. 不提供对 SQL 的支持:如果不支持 SQL 这样的工业标准,将会对用户产生一定的学习和应用迁移成本;
  2. 支持的特性不够丰富:现有产品所提供的功能都比较有限,大多数 NoSQL 数据库都不支持事务,也不像 MS SQL Server 和 Oracle 那样能提供各种附加功能,比如 BI 和报表等;
  3. 现有产品的不够成熟:大多数产品都还处于初创期,和关系型数据库几十年的完善不可同日而语;
  4. 一致性:nosql 只能保证数据相对一致性,尤其是在数据同步的时候,主从服务器的状态是不一致的。