2019版:第一章:(2)NOSQL 数据库简介
一、NOSQL 数据库概述
1、概述
NoSQL(NoSQL = Not Only SQL),意即“不仅仅是 SQL”,泛指非关系型的数据库。NoSQL 不依赖业务逻辑方式存储,而以简单的 key-value 模式存储。因此大大的增加了数据库的扩展能力。2、NOSQL 的特点
不遵循 SQL 标准
不支持 ACID
远超于 SQL 的性能
3、NOSQL 的使用场景
对数据库高并发的读写
海量数据的读写
对数据高可扩展性的
4、NOSQL 的不适用场景
需要事务支持
基于 SQL 的结构化查询存储,处理复杂的关系,需要即席查询。
即席查询:即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
建议:用不着 SQL 的和用了 SQL 也不行的情况,请考虑用 NOSQL。
二、常用的缓存数据库
1、Memcached
2、Redis
Redis 与 Memcached 区别: Memcached: 1、一般不持久化; 2、支持简单 key-value 模式(键值只能为字符串) 3、多线程 + 锁 机制 Redis: 1、支持持久化; 2、支持五种数据类型; 3、单线程 + 多路 IO 复用;3、MongoDB
MongoDB: (1)支持条件查询 (2)最接近关系型数据库的数据库 (3)支持 JavaScript 语法4、列式数据库
先看行式数据库:
思考:如下两条 SQL 的快慢:
select * from user where id=3
select avg(age) from user
在看列式数据库:
上面的两条 SQL 语句:
select * from user where id=3 行式数据库快,列式数据库慢
select avg(age) from user 行式数据库慢,列式数据库快