<海量数据库解决方案>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。

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

阅读了这四类表类型在索引的战略创建的信息,可知,在常规的开发中,大部分都符合以上的建议。
关于二八法则,仅仅了解下而已
原文地址:https://www.cnblogs.com/GoGoagg/p/2000703.html