• 关系型数据库与非关系型数据库的区别


      在关系型数据库中,导致性能欠佳的最主要因素是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。

        为了保证数据库的ACID特性(ACID:● 安全存储合适的数据 

      ●快速检索合适的数据 
      ●支持多个并行的用户会话 ),

    我们必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。

           非关系型数据库提出另一种理念,他以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。但非关系型数据库由于很少的约束,他也不能够提供想SQL所提供的where这种对于字段属性值情况的查询。并且难以体现设计的完整性。他只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数据库显得更为合适。

           目前出现的NoSQL(Not only SQL,非关系型数据库)有不下于25种,除了Dynamo、Bigtable以外还有很多,比如Amazon的SimpleDB、微软公司的AzureTable、Facebook使用的Cassandra、类Bigtable的Hypertable、Hadoop的HBase、MongoDB、CouchDB、Redis以及Yahoo!的PNUTS等等。这些NoSQL各有特色,是基于不同应用场景而开发的,而其中以MongoDB和Redis最为被大家追捧。

  • 相关阅读:
    WinRT下GridView/ListView随滚动条自动加载
    C# 获取属性名
    Xaml System Resources 系统资源
    WinRT常见而又困扰的问题
    .net 解压 zip 包完全不用第三方 library (.net unzip zip file without third party library)
    团队.Net技术手册,现代.Net技术栈摸索梳理
    C# 构建可扩展的应用程序(插件)
    分别用MVC,MCP,MVVM实现一个井字棋游戏
    Android系统属性
    ThreadLocal 和 Countdaowlatch
  • 原文地址:https://www.cnblogs.com/cuixiaomeng/p/7082679.html
Copyright © 2020-2023  润新知