NoSQL初探

一、简介

NoSQL(Not Only SQL),泛指非关系型数据库

Nosql总体上有以下四个特点:

(1)可伸缩性:有效应对负载变化的能力,多使用横向扩展(水平扩展)增加服务器节点

纵向扩展(垂直扩展):对服务器硬件升级

(2)开源:成本开销低

(3)灵活性:动态的添加属性,而不需要一开始定义好固定的表格结构

(4)可用性:一台故障,其他备用或从服务器补充

 

二、性质

相较于关系型数据库的ACID性质,NoSQL有简称为BASE的性质

先回顾下ACID

原子性(atomicity):事务无法再分割

一致性(consistency):数据一致

隔离性(isolation):受隔离的事务在执行完之前,对用户不可见

持久性(durability):事务或操作一旦执行完毕,就会持久化

 

然后是NoSQL的BASE

BA(basically available,基本可用):副本的存在使得一台崩了其他都可使用

S(soft state):软状态,数据最终会被新值覆盖,不刷新就过期

E(eventually consistent,最终一致性):主从间会存在不一致的状态,但通过复制机制,最终都会一致

 

rdb和nosql最大的区别在于一个关注的是稳定关系模型的构建,一个关注的是提高性能满足巨量读写要求

所以后者有时会舍弃一致性和ACID事务,满足大量并发且迅速的读写要求

 

三、数据库类型

NoSQL可分4种类型

键值数据库

文档数据库

列族数据库:如HBase

图数据库

 

 

四、NoSQL的选择

1.键值数据库

适用于频繁读取并写入少量数据且数据模型较为简单

但是查询能力不如其他Nosql

用途:(1)缓存hot data,提升性能

(2)追踪web程序中容易发生变化的一些属性,如购物车,chat history

(3)存储移动应用程序中的配置信息和用户数据信息

(4)存放图像文件及音频文件等大型对象

2.文档数据库

特点在于灵活。如果应用程序需要存储大量数据,而且数据的属性富于变化,选择文档数据库较好

它支持索引,因而查询能力高于键值数据库

用途:(1)为读取和写入量比较大的网站提供后端支持

(2)对属性多变的数据类型进行管理,如管理产品信息

(3)记录各种类型的元数据

(4)使用json数据结构的应用程序

(5)需要在大结构里面嵌套小结构的应用程序,利用了文档可嵌套的性质

3.列族数据库

特点:能处理大量数据,读取和写入的效率较好,具备高度的可用性

应用场合:(1)应用程序总是需要向数据库中写入数据

(2)应用程序分布在地理位置不同的多个数据中心里面

(3)应用程序能够允许副本之间出现短暂的不一致现象

(4)应用程序用的字段会经常变化

(5)可能要处理大量数据如数百TB数据

具体场景:(1)通过网络通信和日志数据进行安全分析

(2)进行诸如生物学的大科学研究

(3)通过交易数据分析证券市场

(4)搜索引擎

(5)社交网络服务

 

4.图数据库

是否适用,判断依据就是:看实体实例之间是否具备关系

比如说电商应用程序中,订单A和订单B之间并没有联系,类似实体应该用键值数据库、文档数据库或关系型数据库

 

建模适用领域:

(1)网络与IT基础设施管理(比如校园网,下属子网,学院网,办公室局域网),计算机网络建模

(2)社交网络的表示

总体而言,在模型中明确表示实体间关系,而且需要迅速在实体间遍历的,选择图数据库

图数据库的意义在关联查询时效率非常高,在知识的表示上,通过推理实现概念检索,而且可以用图形化的方式展示结构化的知识,不局限于网页列表等形式

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值