zoukankan      html  css  js  c++  java
  • 6.1(续)索引、索引组织表--Oracle模式对象

    索引的基本概念:

    (1).要理解索引,可以把书作为一个模型类比。一本书里的内容,相当于一张大表存储的数据,而书前面的目录就相当于这个表的索引;

    (2).索引可以拥有独立的存储磁盘空间;

    (3).索引占用的磁盘空间要比表小的多,其主要作用是为了加快对数据的搜索速度;

    (4).同时可以保证数据的唯一性。

    索引的类型:可分为B树索引(B-Tree)位图索引(bitmap)反向键索引(reverse)基于函数的索引

     

    B树索引(B-Tree)

    树形结构,每个叶子节点中都包括索引列的值和记录行对应的物理地址ROWID(键值ROWID)

    采用B树索引可以确保无论索引条目位于何处,Oracle都需要花费相同的I/O就可以获取它。

    --例如:1001 rowid

    --创建普通索引

    create index employee_ix_ename on employee(ename);

    --创建唯一索引

    create unique index employee_UQ_eid on employee(eid);

    --创建符合索引

    create index employee_ix_ns on employ(ename,esex);

    --注意:符合索引中的列,通常将在查询语句的where子句中经常使用的列放在前面。

    位图索引(bitmap)

    基数较小,且基数相对稳定的列建立索引时,首先考虑位图索引;

    --例如:“性别”列的取值一般只有男、女,类似这样的列基数稳定且较小。

    create bitmap employee_ix_esex on employ(esex);

    反向键索引(reverse)

    也叫翻转索引,是一种特殊的B树索引,适用于在含有序列数的列上创建。

    --例如:索引键为2009,反向键索引将其翻转成9002.

    create index employee_ix_eid on employee(eid) reverse;

     

    基于函数的索引:

    常用与UPPER、LOWER、TO_CHAR(date)等函数分类上

    --创建基于to_char()的函数索引

    create index employee_ix_func on employee(to_char(edate,'yyyy-mm-dd'));

    管理索引:合并、重建、监视、删除

    随着表不断更新,插入、更新数据,表的索引会产生越来越多的存储碎片,这会影响索引的使用效率。

    --合并索引,释放空间

    alter index employee_ix_ename coalesce deallocate unused;

    --重建索引,实际上是在表空间中重新建立一个新的索引,然后删除原来的索引

    alter index employee_ix_ename rebuild;

    --监视索引,打开索引的监视状态后,可查看V$object_usage

    ----打开

    alter index employee_ix_ename monitoring usage;

    ----关闭

    alter index employee_ix_ename nomonitoring usage;

    --删除索引

    Drop index employee_ix_ename;

     

    索引组织表(Index Organized Table,IOT)

    不像普通的表直接采用堆组织方式将记录无序地存放在数据段中;

    而采用类似B树索引的索引组织方式将记录按照某个键列进行排序后,再以B树方式存在数据段中。

    生命不息,折腾不止;不计后果,不问前程!
  • 相关阅读:
    重拾vue1
    sublime text3添加到右键菜单open with sublime text3
    打造最强一款windows最强终端
    Windows下强大的包管理工具Scoop,安装软件一个命令全搞定
    SpringBoot通过proguard-maven-plugin插件进行实际项目代码混淆,实测可用
    贡献一个springboot项目linux shell启动脚本
    springboot2.x基础教程:集成spring-data-jpa
    springboot2.x基础教程:集成mybatis最佳实践
    springboot2.x基础教程:过滤器和拦截器详解
    springboot2.x基础教程:SpringCache缓存抽象详解与Ehcache、Redis缓存配置实战
  • 原文地址:https://www.cnblogs.com/jionjionyou/p/5533017.html
Copyright © 2011-2022 走看看