谈谈你对关系型数据库和非关系型数据库的理解

关系型数据库

1、概念

  • 关系型数据库:指采用了关系模型来组织数据的数据库。
  • 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

2、优点

  • 通过数据库提供的语法(SQL语句)方便在多个表之间 , 做非常复杂的数据查询
  • 事务支持 , 安全性能高

3、缺点

  • 不擅长大量数据的写入处理
  • 不擅长为有数据更新的表 , 做索引或表结构变更
  • 简单查询返回结果不迅速

4、使用场景

  • 需要做复杂数据的处理;
  • 数据量不是特别大的数据;
  • 对安全性能要求高的数据;
  • 数据格式单一的数据;

5、主流

Oracle,Microsoft SQL Server,MySQL,DB2,
SQLite。。

非关系型数据库

1、概念

非关系型数据库以键值对存储,且结构不固定,每一个记录可以有不一样的字段,每个记录可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。

2、优点

  • 用户可以根据需要去添加自己需要的字段,应对数据结构变更的场景
  • nosql数据库 , 简单易部署 , 基本都是开源 , 成本低;
  • nosql数据库 , 存储于缓存之中 , 速度快;
  • nosql数据库 , 可以存储多种类型 , 存储格式key , value形式 , 文档形式 , 图片形式等等,所以可以存储各种格式的类型

3、缺点

  • 无法对表进行复杂的计算 , 不支持join功能 ;
  • 只适合存储一些查询较为简单的数据,对于需要进行较复杂查询的数据,关系型数据库显的更为合适。
  • 不适合持久存储海量数据

4、使用场景

  • 部分技术团队会完全采用非关系型数据库作为自己的持久化保存。比如node.js+mongodb
  • 大部分团队的最终持久化保存策略还是关系型数据库,非关系型数据库多作为缓存,临时数据,热数据的保存。
  • Redis:键值对数据库。 适合缓存场景。
  • Mongodb:分布式文件存储数据库。 适合字段变动很多的业务。如商品表的属性:冰箱的属性 与 酒的属性 大部分不一致,用JSON存储在Mongodb中,有查询与运算

5、主流

  • 面向高性能并发读写的key-value数据库:
    key-value数据库的主要特点是具有极高的并发读写性能,主流代表为Redis
  • 面向海量数据访问的面向文档数据库:
    这类数据库的主要特点是在海量的数据中可以快速的查询数据,主流代表为MongoDB

你可能感兴趣的:(技术)