什么是NoSQL

NoSQL,指的是非关系型的数据库。目前Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数据库。

传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:

  1、High performance - 对数据库高并发读写的需求

        2、Huge Storage - 对海量数据的高效率存储和访问的需求

        3、High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求

而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如:

  1、数据库事务一致性需求

        2、数据库的写实时性和读实时性需求

        3、对复杂的SQL查询,特别是多表关联查询的需求

NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

特点

  它们可以处理超大量的数据

  它们运行在便宜的PC服务器集群上

  PC集群扩充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。

  它们击碎了性能瓶颈

  NoSQL的支持者称,通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度变得更快。

  “SQL并非适用于所有的程序代码,” 对于那些繁重的重复操作的数据,SQL值得花钱。但是当数据库结构非常简单时,SQL可能没有太大用处。

  没有过多的操作

  虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合,而且在数据完整性上也发挥绝对稳定,他们同时也表示,企业的具体需求可能没有那么多。

  Bootstrap支持

  因为NoSQL项目都是开源的,因此它们缺乏供应商提供的正式支持。这一点它们与大多数开源项目一样,不得不从社区中寻求支持。

你可能感兴趣的:(sql,数据库,NoSQL,performance,sharding,Scalability)