NOSQL 是什么 咱们先来列举一下传统型数据库的特点:
结构化 二维表 E-R 关系(实体 - 关系模型) sql 标准化 支持事务(ACID) 锁 索引 sql ,是结构化查询语言,泛指关系型数据库
nosql (not noly sql),不仅仅是 sql ,这泛指不提供 sql 功能的非关系型数据库
它不遵循 sql 的标准,acid 特性,表结构等特性。
最开始 nosql 实际上是 not sql ,后面慢慢发展成 not only sql
nosql 的发展历史:
列式存储 – 键值对存储 – 文档存储 – 图形存储
为什么需要 NOSQL? 大致列举如下几点:
由于现代网络的发展,大多是超大规模高并发的 web 2.0 动态网站 对于大量数据,关系型数据库已经遇到瓶颈,性能方面和扩展性方面的瓶颈 如何解决大规模数据集合,多重数据种类带来的挑战,这就需要 nosql 来处理了 mysql 等关系型数据库应用在大数据上面,显然是一个难题了
分类 | 数据模型 | 优势 | 劣势 | 举例 |
---|---|---|---|---|
键值数据库 | 哈希表 | 查找速度快 | 数据无结构化,通常只被当作字符串或者二进制数据 | Redis |
列存储数据库 | 列式数据存储 | 查找速度快;支持分布横向扩展;数据压缩率高 | 功能相对受限 | HBase |
文档型数据库 | 键值对扩展 | 数据结构要求不严格;表结构可变;不需要预先定义表结构 | 查询性能不高,缺乏统一的查询语法 | MongoDB |
图数据库 | 节点和关系组成的图 | 利用图结构相关算法(最短路径、节点度关系查找等) | 可能需要对整个图做计算,不利于图数据分布存储 | Neo4j、JanusGraph |
https://www.cnblogs.com/mantoudev/p/10414495.html
https://learnku.com/articles/71349
https://www.infoq.cn/article/vyrv7fzzzvqcetwfuzqy