asyty 发表于 2013-1-25 21:02:57

主流nosql数据库对比


目前开源的NOSQL数据库有,Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, 
Riak,Tin, Flare,Lightcloud, KiokuDB,Scalaris,Kai,ThruDB等等。
 
一、满足极高读写性能需求的Kye-Value数据库:Redis,Tokyo Cabinet, Flare 
高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet, Flare,这3个Key-Value DB都是用C编写的,他们的性能都相当出色。 
二、满足海量存储需求和访问的面向文档的数据库:MongoDB,CouchDB
三、满足高可扩展性和可用性的面向分布式计算的数据库:Cassandra,Voldemort
 
表一 主流NOSQL简单对比
参考:http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

CassandraMongodbCouchDBRedisRiakHBase开发语言JAVAC++ErlangC / C++Erlang/ C / JAVASCRIPTJAVA特点分布式与复制的权衡
根据列和键范围进行查询
BigTable类似的功能:列,列族
写比读快很多主从复制
查询利用javascript表达式
比CouchDB更容易就地升级
内置Sharding
数据存储使用的是内存映射文件
数据库崩溃后需要对表进行修复
持久性更好
双向复制
主主复制(master-master replication)
冲突检测
多版本并发控制,写操作不会阻塞读取
通用的技术文档
只崩溃设计Crash-only
需要经常压缩
视图:嵌入式map/reduce
格式化视图:lists & shows
服务器端文档验证可行
身份验证可行
通过_changes实时更新
附件处理内存数据库
主从复制
简单的Key-Value
操作符较为复杂,如
ZREVRANGEBYS
CORE INCR & co
(有利于速率限制和统计)
有集合
(union/diff/inter)
有列表
(a queue; blocking pop)
有散列(多字段对象)
NoSQL中唯一处理交易的数据库
分布式与复制的权衡post-commit 和pre-commit hooks
安全性验证
内置的全文检索
Javascript或
ErlangMap/reduce
分布式与复制的权衡
模仿BigTable
Map/reduce Hadoop
利用服务器端扫描进行查询预测叠加并获取过滤
优化的实时查询
高性能Thrift网关
HTTP支持XML、Protobuf和二进制
Cascading、hive、
pig source和sink模块
基于Jruby的shell
无单点故障
类似MySQL的随机访问性能
证书ApacheApacheApacheBSDApacheApache协议自定义/Thrift自定义/BSONHTTP/RESTTelnet-LikeHTTP/RESTHTTP/REST/Thrift
最佳适用基于JAVA,写操作较多,读少动态的查询,定义索引而非 map/reduce。数据变化快,磁盘不够用,可以使用MongoDB有大量数据,但更新不大,需要预先定义查询数据快速变化,数据库大小可以预见(适合内存存取数据)简单的类似Cassandra
或Dynamo的功能,较强的单点容错性和扩展性
随机数据、实时读取海量数据应用场景银行,金融行业。数据分析MySQL或
PostgreSQL
的替代品
CRM、CMS系统股价系统,数据分析,实时数据采集以及实时通信场景销售点数据采集。工厂控制系统。需要零停机时间的场景喜欢bigTable,需要随即、实时的读写大数据(Big Data)
 
页: [1]
查看完整版本: 主流nosql数据库对比