逻辑层,我们需要对所需存储的数据进行建模。数据模型不同,对应的存储方式不同。
关系型数据库的优缺点:
优点:
- 支持多对多,方便进行join
- 支持ACID特性
缺点: - 关系数据库的 schema 扩展很不方便。 与 monogodb比较
- 关系数据库在大数据场景下 I/O 较高。 与 列式存储比较
- 关系数据库的全文搜索功能比较弱。 与es比较。注意,mysql中的全文检索能力是不可用用于生产环境的。在数据量量比较大的时候,进行拆词,插入速度极慢。
分类 | 数据模型 | 优势 | 劣势 | 举例 |
---|---|---|---|---|
键值数据库 | 哈希表 | 查找速度快 | 数据无结构化,通常只被当作字符串或者二进制数据 | redis |
列存储数据库 | 列式数据存储 | 查找速度快;支持分布横向扩展;数据压缩率高 | 功能相对受限 | hbase |
文档型数据库 | 键值对扩展 | 数据结构要求不严格;表结构可变;不需要预先定义表结构 | 查询性能不高,缺乏统一的查询语法 | monogodb |
图数据库 | 节点和关系组成的图 | 利用图结构相关算法(最短路径、节点度关系查找等) | 可能需要对整个图做计算,不利于图数据分布存储 | neo4jjanusgrap |