4.2 NoSQL数据库

NoSQL数据库是一种非关系型数据库。跟使用SQL的关系型数据库相比,它具有以下一些特点:

  • 无模式(schema)
  • 易于水平扩展(horizontal scaling)
  • 需要为查询而设计文档结构
  • 对事务(transaction)的支持有限,或需要用户自己实现

常见的NoSQL数据库有两类:面向文档的(document-oriented)数据库和“键-值”(key-value)数据库。前者往往以JSON文档作为数据存储,如MongoDB;后者就像一个Hash表,把数据按“键-值”对存储,而且往往整个数据库都位于内存中以实现较快的存取速度(因而常作为缓存使用),如RedisMemcached

需要指出的是,现在已经有不少SQL数据库支持JSON文档的存储和查询,如MySQL(从版本5.7开始),PostgreSQL(从版本9.4开始)和Oracle,这使得SQL数据库和NoSQL数据库的边界变得模糊,对用户来说则意味着更多的选择。

流行的开源NoSQL数据库

  • MongoDB是一种具有高扩展性(scalability)的文档数据库,常用于大数据1存储。
  • Redis是一种多功能的“键-值”数据库:不但可以用作缓存,还可以用作消息代理(message broker)实现“订阅/发布”模式
  • Memcached是一种高性能的、专用于缓存的“键-值”数据库。

更多关于NoSQL数据库的介绍和产品可参考:https://en.wikipedia.org/wiki/NoSQL

1. 大数据专指海量数据,几个甚至几十个GB的数据其实算不上“大”,一般的SQL数据库即可处理。

results matching ""

    No results matching ""