zoukankan      html  css  js  c++  java
  • <海量数据库解决方案>2011033101

    【摘抄】

    索引的选定准则:
    通过战略性的索引可以很大程度提高数据读取操作的效率-记住,索引的目的就在于读取效率的提高

    所以,在索引构建中,追求是精而非多。

    分表类型来说明各个准则:

    A、拥有数据量较少的小型表
    小型表是指一次I/O可以将表中的数据全部读取到内存中,即存储表数据的数据块小于DB_FILE_MULTIBLOCK_READ_COUNT参数的设定。(PS:DB_FILE_MULTIBLOCK_READ_COUNT这个参数在Oracle中,在MsSql中暂时未知)

    B、主要起参考作用的大中型表
    这类表主要用于存储商业活动中的行为、主体、目的等对象的数据,代表性的表="顾客表"

    这类表存储的数据具有较强的独立性,大部分情况下只读取其中满足条件的一部分数据。

    拿顾客表来说,不仅需要存储大量的数据,而且需要随机读取。

    建议:在这类表中,只要为各个索引分配合理的任务(也就是创建战略性索引),即使需要创建大量的索引也应当果断的做出决定。

    C、管理具体业务行为的大中型表
    这类表的主要特征在查询中经常处于循环的外侧,并随时间的推移数据不断增加。
    代表性的表="销售信息表"

    由于此类表通常无法通过某个特定的列来缩减查询范围,所以在大部分情况下使用多列组合来创建多个复合索引。

    数据量不断增加也就意味着我们不能忽视数据插入时的代价,过多的索引不仅会增加数据插入时的成本,而且在某种程度上也会增加对存储空间的需求。

    对于这类表,有如下准则:
    首先,收集正在使用的所有数据读取类型,其次,寻找能够满足所有读取要求的比较理想的索引组合。

    这类表,主要针对反复读取和大范围数据查询的情况。

    一个二八法则的定义:
    二八定律也叫巴莱多定律,是19世纪末20世纪初意大利经济学家巴莱多发明的。他认为,在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的,因此又称二八法则。

    D、存储用的大型表
    主要用于存储和管理日志性的数据,特征:不仅存储着大量的数据而且数据量不断的增加。但此类表没有过多的读取需求,一般作为归档数据使用。同时这类表几乎没有修改的操作,可以建议将Pctfree参数设置为0。

    由于在这种表使用主键也容易增加成本开销,在允许的情况下,建议不设置主键约束。

    阅读了这四类表类型在索引的战略创建的信息,可知,在常规的开发中,大部分都符合以上的建议。
    关于二八法则,仅仅了解下而已
  • 相关阅读:
    网站渗透思路全方面总结 (详细篇)
    使用SQL语句清空数据库所有表的数据
    用微软的压力测试工具进行拒绝服务攻击
    http://jingyan.baidu.com/article/4dc40848e7b69bc8d946f127.html
    DDOS的攻击原理和防护指南
    Nginx下防御HTTP GET FLOOD(CC)攻击
    死链检查工具 Xenu
    again
    https
    SELECT样式,兼容IE6
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2000703.html
Copyright © 2011-2022 走看看