zoukankan      html  css  js  c++  java
  • 关系型数据库和NOSQL数据库对比

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt328

    关系型数据库,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库中的数据。主流的 oracle、DB2、MS SQL Server和mysql都属于这类传统数据库。

    NoSQL数据库,全称为Not Only SQL,意思就是适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。主要分为临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase),每种NoSQL都有其特有的使用场景及优点。

    oracle,mysql等传统的关系数据库非常成熟并且已大规模商用,为什么还要用NoSQL数据库呢?主要是由于随着互联网发展,数据量越来越大,对性能要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机单库瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现了各种不同的NoSQL产品,NoSQL根本性的优势在于在云计算时代,简单、易于大规模分布式扩展,并且读写性能非常高。

    下面分析下两者的特点,及优缺点:

    关系型数据库

    <1>关系数据库的特点是:

    - 数据关系模型基于关系模型,结构化存储,完整性约束。

    - 基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作。

    - 采用结构化的查询语言(SQL)做数据读写。

    - 操作需要数据的一致性,需要事务甚至是强一致性。

    <2>优点:

    - 保持数据的一致性(事务处理)

    - 可以进行join等复杂查询。

    - 通用化,技术成熟。

    <3>缺点:

    - 数据读写必须经过sql解析,大量数据、高并发下读写性能不足。

    - 对数据做读写,或修改数据结构时需要加锁,影响并发操作。

    - 无法适应非结构化存储。

    - 扩展困难。

    - 昂贵、复杂。

    NoSQL数据库

    <1>NoSQL数据库的特点是:

    - 非结构化的存储。

    - 基于多维关系模型。

    - 具有特有的使用场景。

    <2>优点:

    - 高并发,大数据下读写能力较强。

    - 基本支持分布式,易于扩展,可伸缩。

    - 简单,弱结构化存储。

    <3>缺点:

    - join等复杂操作能力较弱。

    - 事务支持较弱。

    - 通用性差。

    - 无完整约束复杂业务场景支持较差。

  • 相关阅读:
    java静态导入
    java导出javadoc文档
    Java编程规范
    Java谜题——类谜题(二)
    JS注意事项
    JS——实现短信验证码的倒计时功能(没有验证码,只有倒计时)
    Java网络通信——XML和JSON
    JS基础知识——定时器
    JS的事件动态绑定机制
    JS基础知识(五)
  • 原文地址:https://www.cnblogs.com/grefr/p/6088565.html
Copyright © 2011-2022 走看看