重温《NoSQL精粹》

在网上有关Redis相关文章满天飞的时候,这个时候我决定重温一下NoSQL。它是什么,用于解决什么问题,有哪些相相似的技术,与传统的关系型数据库有哪些差异,何时使用?
也正如书中所说的,篇幅短小,内容却很丰富。新技术的诞生,咱们应该以既稳健又前瞻的心态看待它。程序员

1. 它是什么,用于解决什么问题?

其实NoSQL的定义并不许确,初意Not Only SQL,不是表达No,SQL!
它就泛指如今描述的非关系型数据库,帮助主张无模式(schemaless)的数据,能够运行在集群环境,可以牺牲传统数据库所具有的一致性,换取一些新特性。能构建出稳定性更高,扩展性更好的编程系统。
有两个主要解决问题:数据库

  • 应用程序的开发效率。更符合应用程序的数据模型,简化交互,减小代码量。
  • 大规模数据。快速获取并处理数据。编程


     
    NoSQL

2.它的“友邦”

 
聚合数据模型

分布式模型

催生NoSQL的主要缘由是:须要一种能勾运行在大集群上的数据库。随着数据量愈来愈多,购买服务器的纵向扩展scale up会变得愈发困难和昂贵,因此催生横向扩展的面向聚合数据库。服务器

3. 选择合适的数据库

宽泛的说,选用NoSQL数据库有两个缘由:less

  • 提升程序员的工做效率;
  • 改善数据访问性能;

两种因素可能互补也可能相互冲突,由于很难将数据存储模型的决策过程抽象出来,稍后再要修改,也颇为不易分布式

在决定适用某个NoSQL技术前,必定要测试其是否如预期般改进了程序员工做效率及数据访问性能。用服务封装数据库,能在需求变动或技术成熟后改换其余数据库技术。性能

相关文章
相关标签/搜索