How to choose a No Sql database 介绍了一下怎么选择一个No Sql数据库,下面简单翻译一下重点。

No Sql的数据库可以分为如下4类:

  1. Key-Value数据库
    数据库中存放的Key-Value对。
    • 例子:Redis, Riak,Voldemort
    • 优点:
      1. 数据模型简单
      2. 扩展性好
    • 缺点:
      1. 需要自己创建“外键”
      2. 对复杂数据支持不好
  2. Wide Column 数据库
    数据库中存放的Key-Value对,但是允许嵌套的Key-Value对。
    • 例子:HBase, HyperTable, Cassandra
    • 优点:
      1. 支持半结构化的数据
      2. 自然索引
      3. 扩展性好
    • 缺点:
      1. 对相互联系的数据支持不好
  3. Document数据库
    数据库还是Key-Value,但是数据必须以数据库能理解的格式存储。比如XML,JSON等。
    • 例子:RavenDB, MongoDB, CouchDB
    • 优点
      1. 数据模型强大
      2. 扩展性好
    • 缺点:
      1. 对相互联系的数据支持不好
      2. 查询模型局限于key和index
  4. Graph数据库
    数据以节点的形式存储。
    • 例子:Neo4j, OrientDB, InfinitGraph, AllegroGraph
    • 优点:
      1. 数据模型强大
      2. 关联的数据局部索引
      3. 容易写出强大的查询
    • 缺点:
      1. 不简单
      2. 分区和扩展性复杂

nosql-database.org可以找到按类别区分的所有的NoSql数据库。从nosql.findthebest.com可以看到一个很清楚的比较各种NoSql数据库的表格。

评测NoSql的性能不是一件容易的事情,可以参考Yahoo Cloud Serving Benchmark这个流行的工具。从这里可以找到一个评测的例子。

如何选择NoSql数据库的更多相关文章

  1. 选择 NoSQL 数据库需要考虑的 10 个问题

    那么我为什么要写这篇文章呢? 是因为我认为NoSQL解决方案不如RDBMS解决方案吗?当然不! 是因为我专注于SQL的做事方式,而不想陷入一种相对较新的技术的不确定性吗?不,也不是!事实上,我非常兴奋 ...

  2. 选择高性能NoSQL数据库的5个步骤

    来源:Redislabs作者:Shabih Syed 翻译:Kevin (公众号:中间件小哥) 构建在线和运营应用程序的开发团队越来越多地选择一类新的数据库来支持它们.它被称为“NoSQL”或“Not ...

  3. noSQL数据库相关软件介绍(大数据存储时候,必须使用)

    目前图数据库软件七种较为流行:Neo4J, Infinite Graph, DEX,InfoGrid, HyperGraphDB, Trinity, AllegroGraph(http://tech. ...

  4. Linux实战教学笔记44:NoSQL数据库开篇之应用指南

    第1章 NoSQL数据库 1.1 NoSQL概述 自关系型数据库诞生40年以来,从理论产生发展到现实产品,例如:大家最常见的MySQL和Oracle,逐渐在数据库领域里上升到了霸主地位,形成每年高达数 ...

  5. 主流NoSQL数据库的分析与选择

    一因为新的数据项目的数据量级较大,因此考虑将mysql替换更高性能的数据库. 介绍一下NoSQL(不仅仅是关系型数据库)的不同种类和其擅长的业务. NoSQL的一个比较明显的特点是适用于现代大数据的存 ...

  6. 几款主流 NoSql 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  7. 小型单文件NoSQL数据库SharpFileDB初步实现

    小型单文件NoSQL数据库SharpFileDB初步实现 我不是数据库方面的专家,不过还是想做一个小型的数据库,算是一种通过mission impossible进行学习锻炼的方式.我知道这是自不量力, ...

  8. .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...

  9. NoSQL数据库笔谈(转)

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

随机推荐

  1. Apache Virtual Include

    2.目录支持includes:     <Directory   />             Options   None             //不支持includes       ...

  2. 网站访问架构cdn与负载均衡

    曾经见到知乎上有人问“为什么像facebook这类的网站需要上千个工程师维护?”,下面的回答多种多样,但总结起来就是:一个高性能的web系统需 要从无数个角度去考虑他,大到服务器的布局,小到软件中某个 ...

  3. [我的疑问]String? = "Skiy Chan" 中的问号是什么意思?

    var optionalName : String? = "Skiy Chan" String? = "Skiy Chan" 中的问号是什么意思?目前还在看ap ...

  4. GMM+Kalman Filter+Blob 目标跟踪

    转 http://www.cnblogs.com/YangQiaoblog/p/5462453.html ==========图片版================================== ...

  5. 学习Swift--下标脚本

    下标脚本 下标脚本可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问集合(collection),列表(list)或序列(sequenc ...

  6. 打log

    如果项目上过线的话,那你一定知道Log是多么重要. 为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题.这时打一手好Log的重要性绝不亚于写一手好代码.项目出问题时,你要能拿出 ...

  7. BZOJ 4013 实验比较

    Description 小D被邀请到实验室,做一个跟图片质量评价相关的主观实验.实验用到的图片集一共有\(N\)张图片,编号为\(1\)到\(N\).实验分若干轮进行,在每轮实验中,小\(D\)会被要 ...

  8. Python写UTF8文件,UE、记事本打开依然乱码的问题

    Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...

  9. 用POLL的方式,没有跑出结果来,立此存照

    咦,这些内容,和我以前看内核时的东东,对应起来了.. SELECT,POLL,EPOLL,非阻塞,异步之类的... 但我没有调出来.回家有空了可以看看,不用再敲打代码啦... #!/usr/bin/e ...

  10. Java Random随机种子

    第一种情况 Random rand = new Random(47); for(int i=0;i<10;i++) System.out.println(rand.nextInt(100)); ...