oracle索引 、约束简单总结

撒时候应该建立索引?

  1.   表很大而且大多数查询的返回数据量很少(oracle推荐<总行数的2%——3%)
  2. 此列的取值范围很广,一般为随机分布。如年龄几乎18岁到60岁的都有
  3. 一列或多列经常出现where子句或连接条件中
  4. 表上的DML操作较少
  5. 此列中包含大量的空值(NULL)
  6. 此列不经常作为SELECT语句中某个表达式的一部分。基于函数的索引

 

 建了索引人家不一定用你的噢,如何确认伟大的oracle系统是否用了你的索引?

  1. explain plan for  select * from emp where ename like ‘J%'; //解释
  2. select id,operation,options,object_name,position from plan_table; //查看是否使用了索引

 

为什么引入约束?

  1. 当对表进行DML或DDL操作时,强加到表上的规则&条件

约束有些撒东西?

  1. (NN)非空——NOT NULL
  2. (UK)唯一——UNIQUE——在表中每一行中所定义的这列或这些列的值都不能相同
  3. (PK)主键——PRIMARY KEY——唯一标识表中的每一行
  4. (FK)外键——FOREIGN KEY——维护主表与从表之间引用完整性
  5. (CK)条件——CHECK——表中每行都要满足约束条件

已有2 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>