oracle数据库中视图、索引、序列的相关概念

来源:互联网 发布:山东财经大学网络 编辑:程序博客网 时间:2024/05/25 23:26

索引的原理及创建索引的意义

索引是对表的一列或多列进行排序的结构。因为绝大多数的搜索方法在搜索排序结构时效率都会大大提高,所以如果表中某一列经常被作为关键字搜索,则建议对此列创建索引。

索引提供指针以指向存储在表中指定列的数据值,根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。

需要创建索引以及不适合创建索引的场合

适合创建索引的场合为:

1)为经常出现在WHERE子句中的列创建索引。

2)为经常出现在ORDER BY、DISTINCT后面的字段建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致。

3)为经常作为表的连接条件的列上创建索引

不适合创建索引的场合为:

1)不要在经常做DML操作的表上建立索引。

2)不要在小表上建立索引。

3)限制表上的索引数目,索引并不是越多越好。

主键选取的原则

主键的选取原则如下:

1)主键应是对系统无意义的数据。

2)永远也不要更新主键,让主键除了唯一标识一行之外,再无其他的用途。

3)主键不应包含动态变化的数据,如时间戳。

4)主键应自动生成,不要人为干预,以免使它带有除了唯一标识一行以外的意义。

5)主键尽量建立在单列上。

外键约束的意义

外键约束维护数据的一致性。外键约束条件包括两个方面的数据约束:

1)从表上定义的外键的列值,必须从主表被参照的列值中选取,或者为NULL。

2)当主表参照列的值被从表参照时,主表的该行记录不允许被删除。


外键约束对性能的影响,以及应对策略

如果在一个频繁DML操作的表上建立外键,每次DML操作,都将导致数据库自动对外键所关联的对应表做检查,产生开销,如果已在程序中控制逻辑,这些判断将增加额外负担,可以省去;外键确定了主从表的先后生成关系,有时会影响业务逻辑。



0 0
原创粉丝点击