目录

文件系统与关系数据库

对比表:

类型 设计难度 数据同于程度 数据架构 应用扩展性
关系数据库 难度相对较大 遵守范式,冗余少 以数据库为中心组织和管理数据 数据库与应用分离、接口标准化,易于扩展
文件系统 针对特定应用系统设计,难度较小 数据冗余较大 以应用为中心管理数据 难以扩展

关系数据库与内存数据库

关系数据库:比如oracle、mysql、sqlserver、sqlite等

内存数据库:redis、mongodb、hbase、memcache

对比表:

类型 数据结构模型 读写性能 存储容量 可靠性
内存数据库 key-value键值对模式 内存直接读写性能较高 基于内存存储,容量受限 大部分不支持持久化,恢复机制较差,可靠性较低
关系数据库 关系模型 外存读写,性能相对低 存储容量大 内存恢复机制,可靠性高

关系数据库

特性

  • 采用关系模型组织数据管理数据
  • ACID,特别是事务的一致性

优点

  • 易于理解,二维表结构易于理解,贴近现实逻辑思维
  • 使用方便,通用的sql语言方便操作
  • 易于维护,丰富的完整性将对了数据冗余与不一致的概率
  • 支持复杂存储与查询
  • 存储容量大
  • 内置恢复机制,可靠性更强

缺点

  • 为了数据一致性,考虑原子性、隔离性引入事务、锁等机制,对读写性能较大影响
  • 数据表结构固定,不灵活,不易于扩展
  • 外存存储,在高并发读写效率相对低

内存数据库

特性

  • 采用键值对模型组织与管理数据
  • 一般不支持acid特性
  • 严格上说不是数据库,而是数据存储集合

优点

  • 内存存储,效率高
  • 无需sql解析,效率更高
  • 数据结构易扩展

缺点

  • 不支持sql
  • 大部分不支持事务
  • 存储容量较低
  • 可靠性相对低