什么是Nosql
Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。
优点
1) 满足对数据库的高并发读写
2)对海量数据的高效存储和访问
3)对数据库高扩展性和高可用性
4)灵活的数据结构,满足数据结构不固定的场景
缺点
1)一般不支持事务
2)实现复杂SQL查询比较复杂
3)运维人员数据维护门槛较高
4)目前不是主流的数据库技术
NoSql分类
序号 | 类型 | 典型产品 | 应用场景 |
1 | Key-value存储 | Redis、memcached | 缓存、处理高并发数据访问 |
2 | 列式数据库 | Hbase、Cassandra | 分布式文件系统 |
3 | 文档型数据库 | MongoDB | Web应用、并发能力较强、表结构可变 |
4 | 图结构数据库 | infoGrid、Neo4J | 社交网络、推荐系统、关注构建图谱 |
传统RDBMS和NoSQL
RDBMS
1)组织化结构
2)固定SQL
3)数据和关系都存在单独的表中(行列)
4)DML(数据操作语言)、DDL(数据定义语言)等
5)严格的一致性(ACID): 原子性、一致性、隔离性、持久性
6)基础的事务
NoSQL
1)不仅仅是数据
2)没有固定查询语言
3)键值对存储(redis)、列存储(HBase)、文档存储(MongoDB)、图形数据库(不是存图形,放的是关系)(Neo4j)
4)最终一致性(BASE):基本可用、软状态/柔性事务、最终一致性