SQL

SQL是关系型数据库,采用关系模型来组织数据结构的数据库(二维表)。

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

常见的有:
le、DB2、SQLServer、Mysql、SQLite都是关系型数据库

优点

  1. 易于维护:容易理解,它的逻辑类似常见的表格
  2. 使用方便:都使用sql语句,sql语句非常的成熟
  3. 复杂查询:支持SQL,可用于一个表以及多个表之间非常复杂的查询;
  4. 数据一致性高,冗余低,数据完整性好,便于操作

缺点

  1. 读写性能比较差,尤其是海量数据的高效率读写;
  2. 每次操作都要进行sql语句的解析,消耗较大,关系型数据库往往每一步都要进行加锁的操作,也造成了数据库的负担
  3. 固定的表结构,灵活度稍欠;
  4. 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈;

nosql

非关系型数据库严格上不是一种数据库,应该是一种数据结构化储存方法的集合,可以是文档或者键值对等。

优点

  1. 高并发,读写能力强
  2. 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
  3. 弱化数据结构一致性,使用更加灵活
  4. 有良好的可扩展性
  5. 成本低:nosql数据库部署简单,基本都是开源软件;

缺点

  1. 通用性差,没有sql语句那样通用的语句,学习和使用成本较高;
  2. 操作灵活导致容易出错和混乱
  3. 数据结构相对复杂,复杂查询方面稍欠;

NoSql的使用情况

  1. 对数据的存储灵活性要求高,一致性要求低
  2. 数据处理海量并发,要求瞬间效率速度比较高
  3. 数据比较容易建立Nosql模型
  4. 网站临时缓冲存储,爬虫应用

NoSql的分类

  1. 键值型数据库 (Redis)
  2. 文档型数据库 (MongoDB)
  3. 列存储数据库 (HBase)
  4. 图形数据库