数据库类型与实例

适合场景

不适合场景

场景举例

关系数据库

基于集合理论,具有行和列的二维表,严格使用类型

开源MySQL/MariaDB, PostgreSQL

商业:Oracle,DB2,SQL Server, Sybase

l  数据具有类型

l  灵活查询。

l  即提前为组织的复杂性付出代价,以实现随后的查询灵活性

l  数据高度或者多层次的,无法提前指定模式

键值数据库

Redis

Riak—类dynamo

Memcached(membase..)

BerkeleyDB

Voldemort

l  数据相关性不高

l  性能极高

l  缺乏索引和扫描功能,除了基本的CRUD外帮助不大

l  对于自由定义的查询无能为力

l  不适合复杂查询和聚合等

l  适合场景

Session信息

用户概要等信息

购物车

l  不适合场景

数据之间存在强关联

事务

根据value查询

Operations by Sets

列型数据库

HBase

Cassandra

Hypertable

l  横向扩展

l  列的添加容易

l  版本控制

l  基于你打算如何查询数据设计数据库模式

l  不仅对数据如何组成有一些想法,对如何使用数据也要预先知晓

l  适合场景

事件日志

CMS,博客

计数器

数据过时使用

l  不适合场景

文档型

MongoDB

CouchDB

l  每个对象有任意数量字段,对象可以作为值以任意深度嵌套到其他字段中

l  高度可变领域

l  很好的映射到OOP

l  缺乏复杂的查询,如联接

l  适合场景

事件日志

CMS,博客

Web分析或者实时分析

电子商务

l  不适合场景

复杂事务

查询持续变化的聚合结构

图数据库

Neo4j(支持ACID事务)

l  形式自由的网络应用,如社交网络

l  不需要将相似的对象划分共同组,只要可以在白板上建模就可以表示

l  场景如推荐引擎、ACL和地理数据

l  节点之间的高度关联,不适合网络分区

l  扩展性差,通常大容量数据存储在其他地方,而在图中只保存关系

l  适合场景

互联数据

路由、分发和基于位置的服务

推荐引擎

l  不适合场景

参考文献

《七周七数据库》

《NoSQL Distilled》

SQL到NoSQL概览性总结之一 数据库应用场景选型的更多相关文章

  1. SQL与NoSQL(关系型与非关系型)数据库的区别

    永远正确的经典答案依然是:具体问题具体分析. 数据表VS.数据集 关系型和非关系型数据库的主要差异是数据存储的方式.关系型数据天然就是表格式的,因此存储在数据表的行和列中.数据表可以彼此关联协作存储, ...

  2. 数据库 --> SQL 和 NoSQL 的区别

    SQL 和 NoSQL 的区别   一.概念 SQL (Structured Query Language) 数据库,指关系型数据库.主要代表:SQL Server,Oracle,MySQL(开源), ...

  3. 大数据学习资料之SQL与NOSQL数据库

    这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者.有自学hadoop的,有报名培训班学习的.所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境.修改配置文件测试 ...

  4. SQL与NoSQL区别--商业SQL数据库衰落--oracle面临困境

    转自:商用数据库之死:Oracle 面临困境 这二十年来,商业数据库市场仍然是 IT 行业最稳定.最具黏性的领域之一,Oracle.IBM 和微软三家厂商瓜分了 80% 的份额.然而,我们认为这个领域 ...

  5. 技术分享|SQL和 NoSQL数据库之间的差异:MySQL(VS)MongoDB

    在当今市场上,存在各种类型的数据库,选择适合你业务类型的数据库对应用的开发和维护有着重要意义.本篇文章,将为大家分享SQL和NoSQL语言之间的区别,同时还将比较这两种类型的数据库,以帮助小伙伴们选择 ...

  6. SQL VS NoSQL 如何选择数据库

    在前一篇文章中我们主要的讨论了SQL与NoSQL数据库之间的主要的差别.接下来,我们将会利用上一篇中的知识来确定在特定的场景中如何确定比较好的选择. 首先我们先来总结一下: SQL数据库: ​使用表存 ...

  7. SQL vs NoSQL 没有硝烟的战争!

    声明:本文译自SQL vs NoSQL The Differences,如需转载请注明出处. SQL(结构化查询语言)数据库作为一个主要的数据存储机制已经超过40个年头了.随着web应用和像MySQL ...

  8. SQL VS NoSQL

    (关系型与非关系型)数据库的区别: 关系型和非关系型数据库的主要差异是数据存储的方式 1.1 数据表 VS 数据集 关系型数据天然就是表格式的,因此存储在数据表的行和列中.数据表可以彼此关联协作存储, ...

  9. SQL 到 NOSQL 的思维转变

    转自:http://blogread.cn/it/article/3130?f=wb SQL 到 NOSQL 的思维转变 NOSQL系统一般都会宣传一个特性,那就是性能好,然后为什么呢?关系型数据库发 ...

随机推荐

  1. The Win32 Rundll and Rundll32 Interface Related Topics

    The Win32 Rundll and Rundll32 Interface Related Topics Microsoft Knowledge Base Article Q164787 Appl ...

  2. YUI-compressor 在Linux下安装和使用

    介绍一个非常流行的javascript压缩工具YUI compressor,可以提供更好的压缩效率:该工具由著名的Yahoo Exceptional Performance项目组出品. JSMin非常 ...

  3. IOS应用发布NSLog的注释及使用重定向,把控制台内容写入文件

    1 选择工程的Target -> Build Settings -> Preprocessor Macros. 如图,默认 Debug项,是“DEBUG=1”. 2 在程序中设置全局宏定义 ...

  4. Jenkins 快速搭建

    Jenkins 介绍 Jenkins 作为持续集成的重要工具,在DevOps整个工具链中有重要的地位.Jenkins 一般作为独立的应用运行在Java Servlet容器中如Jetty,也可以运行在其 ...

  5. Java反编译工具CFR,Procyon简介

    Java反编译工具有很多,个人觉得使用最方便的是jd-gui,当然jad也不错,jd-gui主要提供了图形界面,操作起来很方便,但是jd-gui很久没有更新了,java 7出来很久了,jd-gui在反 ...

  6. 算法: 实现LRU缓存,读取、写入O(1)实现

    这题应该见的不少了,写写记录一下. 实现该功能分析: (1) O(1) 时间完成查找,那除了 hash 别无选择. (2) LRU 最近最少使用算法,为了方便数据的淘汰.需要对最近访问的数据放未访问数 ...

  7. Java系列:使用软引用构建敏感数据的缓存

    一.为什么需要使用软引用    首先,我们看一个雇员信息查询系统的实例.我们将使用一个Java语言实现的雇员信息查询系统查询存储在磁盘文件或者数据库中的雇员人事档案信息.作为一个用户,我们完全有可能需 ...

  8. Netflix推荐系统:从评分预测到消费者法则

    http://in.sdo.com/?p=11 原文链接:Netflix recommendations: beyond the 5 stars (Part 1), (Part 2) 原文作者:Xav ...

  9. Linq-批量删除方法

    linq中批量删除用DeleteAllOnSubmit,里面的参数是数据集 传入某要删除的ID列表,使用对象的Contains方法与数据库中值比较,相同就删除. //批量删除 public void ...

  10. c语言统计程序执行时间

    c语言程序执行时间 #include <iostream> #include <cstdio> #include <ctime> int main() { std: ...