oracle中的索引

一、索引相关概念:

    索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查。

二、创建引索

    自动创建:在定义primary key或unique约束之后系统自动在相应的列上创建唯一性的索引

    手动创建:用户可以在其他列上创建非唯一的索引,以加速查询

  语法: CREATE INDEX index ON table (column)

三、基于函数的索引

    基于函数的索引时基于表达式的索引

    索引表达式由列、常量、sql函数和用户自定义的函数

    CREATE INDEX upper_emp_ename_iddex

      ON EMP(UPPER(emp_ename));

    --index  created---

    select * from emp where upper(emp_ename) = 'SIMTHS';

  删除索引:DROP INDEX index;  

  只有索引的拥有者或拥有DROP ANYINDEX权限的用户才可以删除索引

注:

  建立索引的目的是:
    l 提高对表的查询速度;
    l 对表有关列的取值进行检查。

  提高查询速度的方法还有在表上建立主键,主键与唯一索引的差别
  在于唯一索引可以空,主键为非空

  对表进行insert,update,delete处理时,由于要表的存放位置记录到索引项中而会降低一些速度。
  注意:一个基表不能建太多的索引;
        空值不能被索引
        只有唯一索引才真正提高速度,一般的索引只能提高30%左右。

    

原文地址:https://www.cnblogs.com/mauan/p/7235024.html