|
作者:Nick
|
|
2007-09-26 08:00 |
|
- 选择适合建簇的表 使用簇来保存主要用来查询的表(而非插入和更新站主导),查询时通常要联合本簇内的多个表的数据,或者单个表中检索出相关数据。
- 选择合适的字段作为簇键 一 个好的簇键应有足够的唯一值以保证与每个键值响应的一组记录能大约放满一个数据块。每个簇键值的记录太少,既浪费空间,而在效率方面的改善却微乎其微。每 个簇键值的记录太多,会造成额外的搜索来找到这个键值的记录。过于一般化的键值(如男/女)额外的搜索可能导致比没有簇更差的效率。
- 效率的考虑 簇相对于将一个表和他的索引分开存储将降低DML语句(Insert, Update, Delete)的效率。这一缺点与空间的使用和扫描一个表所必需访问的数据块的数目有关系。由于是多个表共享每个数据块,存储一个簇表将使用比这个表不使用簇时更多的空间。 适合存储在簇中的表:这些表通过完整性约束相关联,并且通常使用SELECT语句将两个或多个表联合起来一起访问。 如果你以用于关联的字段为表建簇,你就能降低执行这个query时,所需访问数据块的数目;一个键值上的连接所需的所有记录都在同一个数据块中。 类似的把一个单独的表存储在簇中也很有用。例如,表EMP可以按照deptno字段建簇,将相同部门的雇员记录放在一个数据块中。如果应用通常一个部门一个部门处理记录的话,就会得到好处。
hash簇的使用
hash簇适用于存储那些静态的并且经常用等查询进行查询的单独的表或者簇表。
|