NoSQL = Not Only SQL 不仅仅是SQL
NoSQL,指的是非关系型的数据库(没有声明性查询语言,没有预定义的模式,可以为键 – 值对存储,列存储,文档存储,图形数据库)。不同于传统的关系型数据库(MySQL,Oracle)的数据库管理系统的统称。NoSQL可以用于超大规模数据的存储。
NoSQL的优点/缺点常见的
优点:
- – 高可扩展性
- – 分布式计算
- – 低成本
- – 架构的灵活性,半结构化数据
- – 没有复杂的关系
缺点:
- – 没有标准化
- – 有限的查询功能(到目前为止)
- – 最终一致是不直观的程序
常见的NoSQL数据库
类型 | 部分代表 | 特点 |
列存储 | Hbase Cassandra Hypertable | 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 | MongoDB CouchDB | 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 |
key-value存储 | Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis | 可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 | Neo4J FlockDB | 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 | db4o Versant | 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 | Berkeley DB XML BaseX | 高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |