ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 索引学习

索引学习

原创 Linux操作系统 作者:monica_yaotf 时间:2010-09-10 15:07:05 0 删除 编辑

1.建立一个系统不是一个确定的过程。这需要仔细的考虑业务需求,技术选择,现有的设施/系统,以及实际的物理资源,如预

算和人力等。以下的问题需要在系统架构的时候好好考虑,虽然不能从根本上定义系统的架构。这些问题提上业务需求可以影响

架构,简化实施,并且从总体的性能和可用性上来构建系统。例如:
1)这个系统最终用户的规模
2)用户的交互方式
3)用户的位置
4)网速如何
5)用户的数据访问量,以及多少数据是只读的
6)用户需要的系统响应时间
7)用户是否需要24小时不间断服务
8)是否所有的变化是否要实时刷新
9)数据库的规模有多大
10)事务的吞吐量
11)需求的可用性
12)是否存在创建和管理应用的技巧
13)哪些方面需要受到预算的限制

2.truncate
1)哈希聚簇不能够被TRUNCATE。如果要truncate则必须删掉聚簇内所有表的所有记录。如果想单独删除某一个的全部记录,则

用delete的方式,或者drop掉表重新create的方式完成。
2)具有DROP ANY TABLE权限的用户可以执行truncate操作
3)在truncate具有父键的表的时候,必须把这其他表上的外键置为无效disable掉。自引用的约束不必取消。
4)truncate不会触发触发器,也不会启用针对delete的审计,但是单一的审计还是会触发。
5)DROP STORAGE和REUSE STORAGE负责管理清楚数据后的存储空间的处理。REUSE STORAGE表示删除数据并不放弃空间,而仍然

把空间留给现在的表,以供其后期的使用。DROP STORAGE是默认选项,表示清楚数据后把空间放弃,仅保留

MINEXTENTSMINEXTENTS大小的空间,其他空间可以为其他表使用。

3.对于已经有数据的表建索引,需要排序空间。
1)在什么是创建索引
经常需要获取大表内<15%的数据。这个比例可以随着相关的表扫描速度,及表内数据的分布情况。扫描速度越快,比例越小。数

据的聚集性月强,则比例约大。
为了加速大表关联查询,索引列要用于关联。(主键和唯一键默认是建有索引的,但建议在外键也创建索引)
小表不需要索引。如果查询耗时很长,这个表或许已经不是小表了。

2)索引候选列的特征
.列值几乎是唯一的,重复几率很小。
.取值范围广(适用于普通索引)
.取值范围少(适用位图索引)
.此列有很多空值,但是检索一般都是取有值的行。这种情况下使用这种语法WHERE COL_X > -9.99 * power(10,125)
优于 使用WHERE COL_X IS NOT NULL,因为第一种方式可以使用此列的索引。
.这一列有很多空值,并且不查非空值。
(原文:There are many nulls in the column and you do not search on the not null values.)
.LONG和LONG RAW列不能创建索引。

3)估计索引的数量,设置存储参数
4)为每个索引指定表空间

合并索引
ALTER INDEX IDX_1 COALESCE;
CREATE INDEX IDX_2 NOLOGGING;

创建大索引的步骤:
1)创建一个临时表空间tbs_temp2
2)指定用户的默认临时表空间为新的临时表空间tbs_temp2
3)创建索引CREATE INDEX
4)删掉临时表空间tbs_temp2

什么情况下使用压缩键
1)索引建立的列的选择读越低,也就是DISTINCT KEY越少。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7353848/viewspace-673163/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-03-27

  • 博文量
    73
  • 访问量
    320846