NoSQL选型
传统“关系型数据库”在应付互联网WEB2.0应用已显示的力不从心,由其是超大规模和高并发的SNS类型的WEB2.0网站。主要需要应对以下三方面难题:
1、对数据库高并发读写的要求。
2、对数据库高可扩展性和高可用性的要求。
3、对海量数据高效存储和访问的要求。
”关系型数据库“固有的特性的确用处不大
1、对数据库事务一致性要求低。很多WEB应用不要求严格的数据库事务,有些对读一致性要求不高,更有些对写一致性也要求不高。
2、对数据库写实时性和读实时性要求低。如发送消息给订阅者,可以接受延迟。
3、对复杂SQL查询的要求低。如非常忌讳多张大表关联查询。
为了解决以上问题,”非关系型数据库“(NoSql -- not only SQL)应运而生,再很短的时间内涌现出众多的NoSQL产品。他们各有各的适用场景,你是否对这些特性有所了解?你是否在选型时一片茫然? 本文将解答你的疑惑,帮助你选择正确的NoSQL产品,让你少走些弯路。
NoSQL数据库分类:
1、key-value存储型--满足极高读写要求。
2、文档存储型--海量存储和访问的数据库。
3、列存储型--高可扩展性,可用性,面向分布式计算的数据库。
4、图存储型--适合存储关系
类型 |
部分代表 |
特点 |
列存储 |
Hbase Cassandra Hypertable |
顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 |
MongoDB CouchDB |
文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 |
key-value存储 |
Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis |
可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 |
Neo4J FlockDB InfoGrid |
图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 |
db4o Versant |
通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 |
Berkeley DB XML BaseX |
高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |
NoSQL选型的更多相关文章
- NoSQL选型及HBase案例详解(转)
从 NOSQL的类型到 常用的产品,我们已经做过很多关于NoSQL的文章,今天我们从国内著名的互联网公司及科研机构的实战谈一下NoSQL数据库. NoSQL一定程度上是基于一个很重要的原理—— CAP ...
- 几款主流 NoSql 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
- HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
- NoSql 数据库
几款主流 NoSql 数据库的对比 posted @ 2016-05-11 21:36 vajoy 阅读(915) 评论(3) 编辑 收藏 最近小组准备启动一个 node 开源项目,从前端亲和力. ...
- 几款主流 NoSql 数据库的对比(转)
转自:http://www.cnblogs.com/vajoy/p/5471308.html 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoS ...
- nosql数据库选型
http://blogread.cn/it/article/6654 今天在书店里翻完了一遍<七天七数据库>.这本书简单介绍了postgreSQL,riak,mongodb,HBase,r ...
- IOT数据库选型——NOSQL,MemSQL,cassandra,Riak或者OpenTSDB,InfluxDB
IoT databases should be as flexible as required by the application. NoSQLdatabases -- especially key ...
- SQL到NoSQL概览性总结之一 数据库应用场景选型
数据库类型与实例 适合场景 不适合场景 场景举例 关系数据库 基于集合理论,具有行和列的二维表,严格使用类型 开源MySQL/MariaDB, PostgreSQL 商业:Oracle,DB2,SQL ...
- RDBMS vs. NoSQL 合作还是竞争
欢迎转载,转载请注明出处,徽沪一郎. 由于近期手头的工作和数据库的选型相关,纠结于是否使用一款NoSQL数据库来替换已有的MySQL数据库.在这个过程中随着学习研究的深入,对于二者的异同有了一些初步的 ...
随机推荐
- 设计模式_Mediator_调停者模式
形象例子: 四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这里拿,赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话.调停者模式: 调停者 ...
- Kotlin 学习
http://kotlinlang.cn/ 资料: https://segmentfault.com/a/1190000004494727 http://blog.csdn.net/u01413448 ...
- LaTex 高中数学公式
排版数学公式是TeX系统设计的初衷,它在LaTeX中占有特殊地位,也是LaTeX最为人所称道的功能之一.基于对MathType排版效果的不满意,以及对公式进行检索的需求,我们使用LaTeX输入数学公式 ...
- SQL2008-查询库中是否存在某表
select * from sysobjects where name= 'N201111B' and xtype= 'U'
- elecworks 电缆型号管理器
部件的命名:系列 导线数x尺寸 (不含保护类型的电线) 或:系列 导线数G尺寸 G(指保护线颜色gr ...
- ALV 插入可编辑的空行
在FCAT 中 设置需要的字段为 可以编辑,然后LOOP 显示 ALV 的内表,将不需要的行设置为 不可编辑 1. 在ALV用的内表中添加控制 style 的 内表 TYPES:BEGIN OF TY ...
- 华为的JAVA面试题及答案(部分)
华为的JAVA面试题 (后记:没有想到华为的面试题就是非同一般,非常多题不是一眼就行看得出来,至少对我这种鸟来说是这样.对我个人来说,看看这种题,可能比看<Think In Java>都还 ...
- 使MySQL 支持繁体字
要 MySQL 支持繁体字,可以将相关编码设置为 UTF8 (也叫 UTF-8).编码的设置从浏览器到表字段,一个都不能少: 浏览器设置 HTML设置 服务器 Request 对象设置 数据库连接设置 ...
- 一天JavaScript示例-在功能上的标量参数和数组参数的差异
<!DOCTYPE> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta h ...
- android学习日记13--数据存储之SharedPreference
android 数据存储 作为一个完整的应用程序,数据存储必不可少.android 提供了五种不同的数据存储方式:SharedPreferences.SQLite.ContentProvider.文件 ...