文章目录
- 前言
- 一、缓存/键值数据库(Memcached、redis)
- Memcached
- Redis
- 二、文档型数据库(mongoDB)
- 特点
- 三、列族数据库(HBase、Cassandra)
- 四、图关系数据库(Neo4j)
- 五、数据库排名
前言
关系型数据库产品很多,如 MySQL、Oracle、Microsoft SQL Sever 等,但它们的基本模型都是关系型数据模型。
非关系型数据库又称为:NoSQL ,没有统一的模型,而且是非关系型的。
常见的 NoSQL 数据库包括键值数据库、列族数据库、文档数据库和图形数据库,其具体分类和特点如表所示:
提示:NoSQL 数据库并没有一个统一的架构,两种不同的 NoSQL 数据库之间的差异程度,远远超过两种关系型数据库之间的不同。
NoSQL 数据库各有所长,一个优秀的 NoSQL 数据库必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的 NoSQL 数据库。以下是NoSQL数据库的分类:
一、缓存/键值数据库(Memcached、redis)
Memcached
- 很早出现的NoSql数据库
- 数据都在内存中,一般不持久化
- 支持简单的key-value模式
- 一般是作为缓存数据库辅助持久化的数据库
Redis
- 几乎覆盖了Memcached的绝大部分功能
- 数据都在内存中,支持持久化,主要用作备份恢复
- 除了支持简单的key-value模式,还支持多种数据结
- 构的存储,比如list. set、 hash. zset等。
- 一般是作为缓存数据库辅助持久化的数据库
- 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
mongoDB被称为最接近关系型数据库的非关系数据库
特点
- 高性能、开源、模式自由(schema free)的文档型数据库
- 数据都在内存中,如果内存不足,
- 虽然是key-value模式,但是对value (尤其是json) 提供把不常用的数据保存
- 到硬盘了丰富的查询功能
- 支持二进制数据及大型对象
- 可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,
先看什么是行式存储数据库
select * from users where id =3
这样子查询主要是以行来查询 ,速度比较快
select avg(age) from users
求平均值主要以列来查询,速度比较慢
列式数据库
HBase
HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。
Cassandra
Apache Cassandra是一 款免费的开源NoSQL数据库, 其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓 越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。
主要应用:社会关系,公共交通网络,地图及网络拓谱
并非说排名前的数据库就越好,而是根据也无需求来选择合适的数据库