zoukankan      html  css  js  c++  java
  • Oracle之索引(Index)实例解说

    Oracle之索引(Index)实例解说 - 基础

    索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象。主要目的是加快数据的读取速度和数据的完整性检查。索引的建立是一项技术性要求很高的工作。

    一般在数据库设计阶段就要考虑到怎样设计和创建索引。


    1. 创建索引

    创建索引的语法:

    CREATE [UNIQUE] INDEX [schema.] index
    ON [schema.] table (column [ASC | DESC], column [ASC | DESC]...)
    [CLUSTER schema.cluster]
    [INITRANS n]
    [MAXTRANS n]
    [PCTFREE  n]
    [STORAGE storage]
    [TABLESPACE tablespace]
    [NO SORT]

    keyword说明:

    • UNIQUE: 该參数用来指明所创建的索引为唯一索引。

    • CLUSTER: 该參数为可选參数,用来指定一个聚簇(Hash cluster 不能创建索引)。
    • INITRANS, MAXTRANS: 为可选參数,指定初始和最大的事务入口数。
    • TABLESPACE: 索引的存储表空间。
    • STORAGE: 存储參数。

    • PCTFREE: 索引数据块空暇的百分比。
    • NO SORT: 不排序(存储时就依照升序进行排序,所以这里指出不再排序)。

    演示样例:创建一张产品表(tb_product),为该表的product_id列创建索引,以便在使用到该列时提高查询效率。

    create table tb_product
    (
      product_id              number
    , product_name            varchar2(100)
    , product_type            varchar2(20)
    , product_unit            varchar2(50)
    , product_unit_price      number(10,4)
    );
    以下代码用来在product_id列上创建唯一索引:

    create unique index product_id_u1 on tb_product(product_id);


    2. 改动索引

    索引的改动主要由数据库管理员完毕,改动索引主要涉及到改动索引的存储參数、重建索引、对没用的索引空间进行合并等。

    改动索引的语法:

    ALTER [UNIQUE] INDEX [user.] index
    INITRANS n
    MAXTRANS n
    REBUILD 
    [STORAGE <storage>]
    说明:

    • INITRANS n: 表示一个块内同一时候訪问的初始事务的入口数,n为十进制整数。

    • MAXTRANS  n: 表示一个块内同一时候訪问的最大事务入口数。n为十进制整数。
    • REBUILD: 表示依据原来的索引结构又一次建立索引。也就是又一次对表进行全表扫描以后创建索引数据。
    • STORAGE <storage>: 表示存储数据。

    演示样例:

    使用ALTER INDEX语句改动索引參数:

    ALTER INDEX product_id_u1 REBUILD STORAGE  ( INITIAL 1M NEXT 512K );

    使用ALTER INDEX语句改动索引为逆向索引:

    ALTER INDEX product_id_u1 REBUILD REVERSE;

    使用ALTER INDEX语句合并索引空间:

    ALTER INDEX product_id_u1 COALESCE;


    3. 删除索引

    能够使用DROP语句删除索引。

    DROP INDEX schema.index;

    注:假设表结构被删除。则与该表相关联的索引也同一时候被删除。


    ---------------------------------------------------------------------------------------------------------

    假设您们在尝试的过程中遇到什么问题或者我的代码有错误的地方。请给予指正,很感谢!

    联系方式:david.louis.tian@outlook.com

    版权@:转载请标明出处, 否则追究法律责任!
    ----------------------------------------------------------------------------------------------------------


  • 相关阅读:
    velocity模板引擎学习(2)-velocity tools 2.0
    silverlight: http请求的GET及POST示例
    职责链(Chain of Responsibility)模式在航空货运中的运用实例
    H2 Database入门
    velocity模板引擎学习(1)
    Struts2、Spring MVC4 框架下的ajax统一异常处理
    企业应用通用架构图
    nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡
    nginx学习(1):编译、安装、启动
    eclipse/intellij Idea集成jetty
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6834423.html
Copyright © 2011-2022 走看看