001 - NoSQL


一、NoSQL数据库


  NoSQL = Not Only SQL (不仅仅是SQL) ,也解释为 non-relational (非关系型数据库)。

  在 NoSQL 数据库中的数据之间是无联系的,无关系的,数据结构是松散的,可变的,也就是说一旦去掉了关系数据库的关系型特性,数据之间一旦没有关系,使得扩展性、读写性能都大大提高。



二、为什么使用 NoSQL


  • 伴随着互联网的高速发展,互联网应用出现了如下的特征:
    • 访问量大;
    • 高并发;
    • 高可用;
    • 海量数据;

  • 伴随着出现以上的特征,关系型数据库达到了瓶颈:
    • 无法应对每秒上万次的读写请求,无法处理大量集中的高并发操作,关系型数据是 IO 密集的应用,硬盘 IO 也变为性能瓶颈;
    • 表中存储记录数量有限,横向可扩展能力有限,一张表最大二百多列。纵向数据可承受能力也是有限的,一张表的数据到百万级,读写的速度就会逐渐下降,面对海量的数据,必须使用主从复制,分库分表,这样的系统架构是难以维护的。
    • 大数据查询时 SQL 效率极低,数据量达到一定程度时,查询时间会呈指数级别增长;
    • 无法简单的通过增加硬件、服务节点来提高系统性能。数据存储在一个数据库中的,多个服务器没有很好的解决方法来复制这些数据。
    • 关系型数据库大多是收费的,对硬件要求较高,软件和硬件的成本花费比重较大。



三、NoSQL 的优势

  • 大数据量,高性能
    • NoSQL 数据库具有非常高的读写性能,尤其是在大数据量下,同样表现优秀,这得得益于它的无关系性,数据库的结构简单。在关系型数据库中,使用的是查询缓存,这种查询缓存在更新数据后,缓存就会失效,在频繁的数据读写交互应用中,缓存的性能不高。
  • 灵活的数据模型
    • NoSQL 无先为要存储的数据建立字段,随时可以存储自定义的数剧格式,而在关系型数据库里,增删字段也是一件非常麻烦的事情,如果是非常大数据量的表,增加字段简直就是一件很麻烦的事情,尤其是在用户需求不断变化的时候。
  • 高可用
    • NoSQL 在不影响性能的情况下,就可以很方便的实现高可用的架构,它很好的解决关系型数据库扩展性差的问题,弥补了关系型数据库在某些方面的不足。
  • 低成本
    • 开源的



四、NoSQL 的优势

  • 无关系,数据之间是无联系的;
  • 不支持标准的 SQL,没有公认的 NoSQL 标准;
  • 没有关系型数据库的约束,大多数也没有索引的概念;
  • 没有事务,不能依靠事务实现 ACID ;
  • 没有丰富的数据类型(数值,日期,字符,二进制,大文本等)




相关链接:

链接: 007-SSM三大框架(三)—— Spring 的面向切面编程(AOP).
链接: 006-SSM三大框架(三)—— Spring 的 IoC 控制反转.
链接: 004-SSM三大框架(二)—— MyBatis 框架动态 SQL.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值