SQL和NoSQL

1、关系型数据库的特点

  • 获取持久化数据:可以将数据持久化到磁盘,并且很容易访问到其中一小块数据。

  • 并发:关系型数据库中有“事务”的概念,有效保障了多个程序访问同一份数据时的一致性,事务的ACID(原子性、一致性、隔离性、持久性)特性相信大家都了熟于心了。

  • 集成:不同开发团队,不同平台,不同语言的应用程序可以共享同一份数据。

  • 标准的关系模型:之所以能够很方便地达到上述目的,是因为提供了近乎标准的、统一的关系模型。

2、传统关系数据库的瓶颈

  • 性能受限:随着网络规模急剧增加,硬件计算资源“横向拓展”已经成为必然,集群已经成为趋势,然而关系型数据库并不是设计给集群用的,要么采用“共享磁盘子系统”来支撑集群上的文件系统(磁盘会成为瓶颈),要么按照逻辑对数据库进行分片,这样虽然能够将负载分散到多个服务器,但是应用程序必须控制所有分片,而且事务、一致性等无法跨越分片进行。

  • 扩展性差:大数据量高并发环境下的 MySQL 应用开发越来越复杂,也越来越具有技术挑战性,分表分库的规则把握都是需要经验的。

3、NoSQL的优点

  • 易扩展:NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

  • 大数据量,高性能:NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MySQL 使用 Query Cache,每次表的更新 Cache 就失效,是一种大粒度的 Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache,所以 NoSQL 在这个层面上来说就要性能高很多了。

  • 灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的 web2.0 时代尤其明显。

  • 高可用:NoSQL 在不太影响性能的情况,就可以方便的实现高可用的架构。比如 Cassandra,HBase 模型,通过复制模型也能实现高可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值