NoSQL入门理论

来源:互联网 发布:修复ie7软件 编辑:程序博客网 时间:2024/06/11 19:18

NoSQL简介

NoSQL是“Not Only SQL”的缩写。它的意义是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。


数据库分类

数据库根据不同的数据模型(数据的表现形式)主要分成层次型、网络型和关系型3种。

  • 1 层次型数据库
  • 2 网络型数据库
  • 3 关系型数据库

关系型数据库的优势

  • 1 通用性及高性能
  • 2 保持数据的一致性(事务处理)
  • 3 由于以标准化为前提,数据更新的开销很小
  • 4 可以进行JOIN等复杂查询
  • 5 存在很多实际成果和专业技术信息(成熟的技术)

关系型数据库不擅长的操作

  • 1 大量数据的写入处理
  • 2 为有数据更新的表做索引或表结构变更
  • 3 字段不固定时应用
  • 4 对简单查询需要快速返回结果的处理

NoSQL数据库的类型

临时性键值存储 永久性键存储 面向文档的数据库 面向列的数据库 Memcached Tokyo Tyrant MongoDB Cassandra (Redis) Flare CouchDB HBASE ROMA HyperTable (Redis) HyperTable
1、键值(Key/Value)存储
  1. 临时性
    Memcached把所有数据都保存在内存中,这样保存和读取的速度非常快,但数据有可能丢失。
  2. 永久性
    Tokyo Tyrant、Flare和ROMA等属于这种类型,它们将数据保存再硬盘上,可以进行非常快速的保存和读取处理(无法与Memcached相比);数据不会丢失。
  3. 两者兼具型
    Redis同时在内存和硬盘上保存数据,可以进行非常快速的保存和读取处理,保存在硬盘上的数据不会小时(可以恢复);适合于处理数组类型的数据。
2、面向文档的数据库
  1. 不定义表结构
    即使不定义表结构,也可以像定义了表结构一样使用。
  2. 可以使用复杂的查询条件
    虽然不具备事务处理和JOIN这些关系型数据库所具备的处理能力,但除此以外的其他处理基本上都能实现。
3、面向列的数据库
  1. 面向行的数据库和面向列的数据库
数据类型 数据存储方式 优势 面向行的数据库 以行为单位 对少量行进行数据读取和更新 面向列的数据库 以列为单位 对大量行少数列进行读取,对所有行的特定列进行同时更新

2. 高扩展性,但应用十分困难。

原创粉丝点击