nosql:not only sql。在关系型数据库不适合的时候,可以考虑使用更加合理的数据存储。
关系数据库的不足:
- 大量数据的写人操作——增加主数据库,但是会发生更改冲突或者数据的不一致或者分割存储但是不能进行JION处理;
- 为有数据更新的表做索引或者表结构的变更——当增加索引或者增加字段等改变表结构,需要共享锁定,这期间无法的对数据进行变更;
- 字段不固定时的应用:需要反复变更表的结构;
- 对简单查询需要快速返回结果的处理。
nosql基本上不进行复杂的处理,只应用在特定领域,为了使大量数据的写入处理更加容易而设计的。刚好弥补关系型数据库的不足。
nosql的优势:
- 易于数据的分散:不支持jion处理,各个数据都是独立设计的,很容易把数据分散到多个服务器上,减少每个服务器的数据量,便于进行大量数据的读写操作;
- 提升性能和增大规模;
- 尽管不是对大量数据进行处理也可以使用:
- 希望顺畅地对数据进行缓存处理;
- 希望对数组类型的数据进行高速处理;
- 希望进行全部保存。
典型的Nosql数据库:
临时性键值存储 | 永久性键值存储 | 面向文档的数据库 | 面向列的数据库 |
memcached | Tokyo Tyrant | MongoDB | Cassandra |
(Redis) | Flare | CouchDB | HBase |
ROMA | HyperTable | ||
(Redis) |
关系型数据库:面向行的数据库。以行为单位来存储和处理数据。