一、管理索引-原理介绍

索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种:

为什么添加了索引后,会加快查询速度呢?

二、创建索引

1)、单列索引

单列索引是基于单个列所建立的索引

语法:create index 索引名 on 表名(列名);

eg、create index nameIndex on custor(name);

2)、复合索引

复合索引是基于两列或是多列的索引。在同一张表上可以有多个索引,但是要求列的组合必须不同,比如:

create index emp_idx1 on emp(ename, job);

create index emp_idx1 on emp(job, ename);

以上这两个索引是两个不同的索引。

三、使用原则

1)、在大表上建立索引才有意义

2)、在where子句或是连接条件上经常引用的列上建立索引

3)、索引的层次不要超过4层

这里能不能给学生演示这个效果呢?

如何构建一个大表呢?

四、索引的缺点

索引有一些先天不足:

1)、建立索引,系统要占用大约为表1.2倍的硬盘和内存空间来保存索引。

2)、更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

实践表明,不恰当的索引不但于事无补,反而会降低系统性能。因为大量的索引在进行插入、修改和删除操作时比没有索引花费更多的系统时间。

比如在如下字段建立索引应该是不恰当的:

1. 很少或从不引用的字段;

2. 逻辑型的字段,如男或女(是或否)等。

综上所述,提高查询效率是以消耗一定的系统资源为代价的,索引不能盲目的建立,这是考验一个DBA是否优秀的很重要的指标

五、其它索引

按照数据存储方式,可以分为B*树、反向索引、位图索引;

按照索引列的个数分类,可以分为单列索引、复合索引;

按照索引列值的唯一性,可以分为唯一索引和非唯一索引。

此外还有函数索引,全局索引,分区索引...

对于索引我还要说:

在不同的情况,我们会在不同的列上建立索引,甚至建立不同种类的索引,请记住,技术是死的,人是活的。

比如:B*树索引建立在重复值很少的列上,而位图索引则建立在重复值很多、不同值相对固定的列上。

六、显示索引信息

1)、在同一张表上可以有多个索引,通过查询数据字典视图dba_indexs和

user_indexs,可以显示索引信息。其中dba_indexs用于显示数据库所有的索引信息,而user_indexs用于显示当前用户的索引信

息:select index_name, index_type from user_indexes where table_name =

‘表名‘;

2)、显示索引列

通过查询数据字典视图user_ind_columns,可以显示索引对应的列的信息

select table_name, column_name from user_ind_columns where index_name =‘IND_ENAME‘;

你也可以通过pl/sql developer工具查看索引信息

Oracle 索引层级,十六、oracle 索引相关推荐

  1. mysql索引实例_mysql索引之十:Mysql 索引案例学习

    理解索引最好的办法是结合示例,所以这里准备了一个索引的案例. 假设要设计一个在线约会网站,用户信息表有很多列,包裹国家,地区,城市,性别,眼睛颜色,等等.完整必须支持上面这些特征的各种组合来搜索用户, ...

  2. Oracle学习(十六)Oracle安装

    为了本地创建数据库自己玩耍,还是下个Oracle的客户端吧... 一.下载地址 注意,要用Oracle的帐号进行登录后才能下载 http://download.oracle.com/otn/nt/or ...

  3. oracle过滤器基础,Oracle培训(四十六)——Servlet第六章知识点总结——过滤器编程...

    Oracle培训(四十六)--Servlet第六章知识点总结--过滤器编程 目标 编写一个过滤器 部署一个过滤器 了解请求和响应包装器 在请求分发器下的过滤器 知识点预览 过滤器 过滤器 1. 什么是 ...

  4. oracle数据库中索值,Oracle数据库中的索引详解

    Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...

  5. oracle中的index函数,Oracle中的索引详解(整理)

    一. ROWID的概念 存储了row在数据文件中的具体位置:64位 编码的数据,A-Z, a-z, 0-9, +, 和 /, row在数据块中的存储方式 SELECT ROWID, last_name ...

  6. oracle复合索引的使用方法,ORACLE复合索引使用 注意事项

    复合索引的第一列一定要出现在WHERE子句中. 一.like "%_" 百分号在前. 二.WHERE中单独引用复合索引里第一位置的索引列,并且SELECT.GROUP BY等子句中 ...

  7. Oracle之表分区、分区索引(二)

    其实range分区你学会了,其他的分区你也学会了,在这我就不敲了,咱们简单来看一下,hash分区,hash分区实现负载均衡,平均分配值进行分区,那这个哈希就是平均分配的,也是一张表,还是partiti ...

  8. oracle技术之顺序文件上的索引(一)

    顺序文件上的索引(一) 研究索引结构,我们首先来考虑最简单的一种:由一个称为数据文件的排序文件得到另一个称为索引文件的文件,而这个索引文件由键-指针对组成.在索引文件中查找键K通过指针指向数据文件中查 ...

  9. oracle 修索引改空间_oracle 修改索引现有表空间

    工作日记之<修改索引现有表空间> //dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途 //假设用户USER1现有表空间TS1.TS2,需要迁移其下所有表空间 ...

  10. Oracle 快速入门 同义词序列视图索引

    目录 一.数据库对象 二.同义词synonym 三.序列 四.视图 五.索引 六.综合代码 1.同义词部分: 2.序列: 3.视图和索引 一.数据库对象 1.数据库对象         2.同义词   ...

最新文章

  1. Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)
  2. 百度CTO王海峰:深度学习如何大规模产业化?
  3. linux日程管理系统,Linux系统时间管理
  4. 新浪php面试题目,新浪php的面试题 收集
  5. python100行代码-100行Python代码自动抢火车票!
  6. c++图形化界面_还能这样用?Linux下如何编译C程序?
  7. Apache+PHP+MySQL安装与配置
  8. HashMap+双向链表实现LRU
  9. Android 8.0 系统学习(6)---Linux内核接口要求
  10. conky的自动启动
  11. MacOS ClashX 配置代理端口为0问题7890 配置iterm2终端代理
  12. echarts实现组织结构图
  13. 年终总结:华为|字节|腾讯|京东|网易|滴滴面经分享(斩获6个offer)
  14. 2021计算机应用基础形考任务作业一答案,国开网计算机应用基础(本)形考作业三答案...
  15. 简化版SAAS——业务开单选择材料,选择的是库存是40的货品,实际出库的是-38的货品
  16. gh-ost —— GitHub Online DDL 工具使用详解
  17. Android开发 Retrofit使用
  18. thinkphp6 jwt扩展
  19. 快速下载“阿里云镜像网站“Centos各个版本 全流程
  20. shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份

热门文章

  1. vm8.0下安装mac
  2. 阿里云 Aliplayer高级功能介绍(九):自动播放体验...
  3. 开源BI工具对比(三) DataEase
  4. mysql 定时备份和远程备份脚本
  5. 《统计学》第八版贾俊平第一章课后习题及答案总结
  6. html5字体代码列表,html5——web字体(示例代码)
  7. 详解ICT及其业务领域范围
  8. STorM32三轴云台控制器PID参数调节(1)
  9. cart决策树Matlab实现,CART决策树的理解及其实现
  10. 转 常见视频编码方式以及封装格式