NoSql数据库入门(1)——NoSQL数据库的基础知识

这本书是图书馆偶然看到的,翻阅几章后发现无外乎概念的简单堆砌,更像是国内科研工作者的产出,故完结,不再更新。

1. 关系型数据库和NoSQL数据库

  1. NoSQLNot Only SQL的缩写,意义是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储
  2. 关系型数据库的不足:
    不擅长以下处理:
    • 大量数据的写入
    • 为有数据更新的表做索引或表结构(schema)变更
    • 字段不固定时应用
    • 对简单查询需要快速返回结果的处理

2. NoSQL数据库是什么

  1. 键值存储
    1. 临时性(memcached)
      所谓临时性就是“数据有可能丢失”,特点为
      • 在内存中保存数据
      • 可以进行非常快速的保存和读取处理
      • 数据有可能丢失
    2. 永久性(Tokyo Tyrant、Flare、ROMA)
      特点为:
      • 在硬盘上保存数据
      • 可以进行非常快速的保存和读取处理(但无法与memcached相比)
      • 数据不会丢失
    3. 两者兼具(Redis)
      特点为:
      • 同时在内存和硬盘上保存数据
      • 可以进行非常快速的保存和读取处理
      • 保存在硬盘上的数据不会消失(可以恢复)
      • 适合于处理数组类型的数据
  2. 面向文档的数据库
    典型的有MongoDB、CouchDB,特点为:
    • 不定义表的结构
    • 可以使用复杂的查询条件
  3. 面向列的数据库
    普通的关系型数据库都是以行为单位来存储数据的,擅长进行以行为单位的读入处理,因此,关系型数据库也被称为面向行的数据库。面向列的数据库的特点为:
    • 高扩展性(特别是写入处理)
    • 应用十分困难
Table of Contents