zoukankan      html  css  js  c++  java
  • Atitit nosql的概念与attilax的理解 目录 1. 常见的nosql 二、Redis,Memcache,MongoDb的特点 1 HBase 1 2. Nosql的核心nosql 1

    Atitit nosql的概念与attilax的理解

     

    目录

    1. 常见的nosql 二、Redis,Memcache,MongoDb的特点 1  HBase 1

    2. Nosql的核心nosql 1

    3. Sql的特点 1

    4. 为什么性能高 2

    4.1. 主要简化结构 2

    4.2. 去掉了sql引擎 2

    4.3. 事务引擎   只保留了存储引擎 2

    4.4. 简化的索引 2

    4.5. 并发控制机制简化 2

    4.6. 动态还是静态的数据结构。 2

     

    1. 常见的nosql 二、Redis,Memcache,MongoDb的特点 1  HBase
    2. Nosql的核心nosql

     

    1. Sql的特点

    Sql 比cript层次更高,4gl。。

    脚本语言本身信念比较差性能

    Sql vm  优化也比较懒 没有标准化所有优化不力,就像js v8 vm以前。。。

     

     

    但换来的就是性能比较差了,因为没有充分利用不同平台的特性,所有平台都是一样。往往不同平台的性能跟虚拟机还是有很大关系的。 
    不说了,感觉说了一堆的废话。总结一下就是脚本语言是更高层的语言,并不是更高级的语言。

     

     

    1. 为什么性能高 
      1. 主要简化结构
      2. 去掉了sql引擎
      3. 事务引擎   只保留了存储引擎
      4. 简化的索引 
      5. 并发控制机制简化
      6. 动态还是静态的数据结构。

     

     

    关系型数据库需要在存储引擎层面支持Join,而NoSQL系统一般根据应用来决定Join实现的方式。举个例子,有两张表:用户表和商品表,每个用户下可能有若干个商品,用户表的主键为<user_id, item_id>,用户和商品的关联属性存放在用户表中,商品表的主键为item_id,商品属性包括商品名,商品URL,等等。假设应用需要查询一个用户的所有商品并显示商品的详细信息,普通的做法是先从用户表查找指定用户的所有item_id,然后对每个item_id去商品表查询详细信息,即执行一次数据库Join操作,这必然带来了很多的磁盘随机读,并且由于Join带来的随机读的局部性不好,缓存的效果往往也是有限的。在NoSQL系统中,我们往往可以将用户表和商品表集成到一张宽表中,这样虽然冗余存储了商品的详细信息,却换来了查询的高效。

    关系型数据库的性能瓶颈往往不在SQL语句解析上,而是在于需要支持完备的SQL特性。互联网公司面临的问题是应用对性能和可扩展性要求很高,并且DBA和开发工程师水平比较高,可以通过牺牲一些接口友好性来换取更好的性能。NoSQL系统的一些设计,比如通过宽表实现Join操作,互联网公司的DBA和开发工程师也做过,NOSQL系统只是加强了这种约束。从长远来看,可以总结一套约束集合,并且定义一个SQL子集,只需要支持这个SQL子集就可以在不牺牲可扩展性的前提下支持比如90%以上的互联网应用。我想,NoSQL技术发展到这一步的时候就算是比较成熟了,这也是我们最终想做的事情。我们在设计和使用NoSQL系统的时候也可以适当转化一下思维,如下:

    1. 更大的数据量。很多人在使用MySQL的过程遇到记录条数超过一定值,比如2000W的时候,数据库性能开始下降,这个值的得出往往需要经过大量的测试。然而,大多数的NoSQL系统可扩展性都比较好,能够支持更大的数据量,因此也可以采用一些空间换时间的做法,比如通过宽表的方式实现Join。

    2. 性能预估更加容易。关系型数据库由于复杂的并发控制,insert buffer及类似page cache的读写优化机制,性能估算相对较难,很多时候需要凭借经验或者经过测试才能得出系统的性能。然后,NOSQL系统由于存储引擎实现,并发控制机制等相对简单,可以通过硬件的性能指标在系统设计之处大致预估系统的性能,性能预估可操作性相对更强。

     

     

     

    为什么要从关系型数据库转向NoSQL -- 简明现代魔法.html

     

  • 相关阅读:
    C#利用反射动态调用类及方法
    系统程序监控软件
    SQL server 2008 安装和远程访问的问题
    sql server 创建临时表
    IIS 时间问题
    windows 2008 安装 sql server 2008
    sql server xml nodes 的使用
    Window 7sp1 安装vs2010 sp1 打开xaml文件崩溃
    CSS资源网址
    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0
  • 原文地址:https://www.cnblogs.com/attilax/p/15197540.html
Copyright © 2011-2022 走看看