zoukankan      html  css  js  c++  java
  • SQL到NoSQL概览性总结之一 数据库应用场景选型

    数据库类型与实例

    适合场景

    不适合场景

    场景举例

    关系数据库

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

    开源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》

  • 相关阅读:
    DAY56
    DAY55
    DAY54
    DAY53
    DAY52
    DAY51
    DAY50
    spark1.1.0部署standalone分布式集群
    Storm流分组介绍
    Storm拓扑的并行度(parallelism)介绍
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3402517.html
Copyright © 2011-2022 走看看