数据库索引是为了提高查询速度的一种数据结构。

索引的创建语句

索引的创建语句。

CREATE INDEX 索引名 ON 表名(列名);

除了单列索引,还可以创建包含多个列的复合索引。

CREATE INDEX 索引名 ON 表名(列名1, 列名2, 列名3, ...);

删除索引。

DROP INDEX 索引名;

查看某个表中的所有索引。

SELECT * FROM ALL_INDEXES WHERE TABLE_NAME = '表名'

查看某个表中建立了索引的所有列。

SELECT * FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '表名'

建立索引注意字段顺序。

索引的建立原则

1.索引应该建立在WHERE子句中经常使用的列上。如果某个大表经常使用某个字段进行查询,并且检索的啊行数小于总表行数的5%,则应该考虑在该列上建立索引。

2.对于两个表连接的字段,应该建立索引。

3.如果经常在某表的一个字段上进行Order By的话,则也应该在这个列上建立索引。

4.不应该在小表上建立索引。

索引的优缺点

索引主要是为了提高数据的查询速度,这就是索引的优点。但是当进行增删改的时候,会更新索引。因此索引越多,增删改的速度就会越慢,因为有一个维护索引的过程。创建索引之前需要权衡该字段是否经常发生增删改操作,否则可能会带来负优化的问题。

索引的优点

1.很大地提高了数据的检索速度。

2.创建唯一索引能保证数据库表中每一行数据的唯一性(唯一性约束)。

3.提高表与表之间的连接速度。

索引的缺点

1.索引需要占用物理空间。

2.当对表中的数据进行增加、删除和修改的时候,索引也要动态地进行维护,降低数据的维护速度。

关于查询优化器

当Oracle拿到SQL语句的时候,会使用查询优化器去分析该语句,并根据分析结果生成查询执行计划。也就是说,数据库是执行的查询计划,而不是SQL语句。

查询优化器有RBO(Rule-Based-Optimizer,基于规则的查询优化器)和CBO(Cost-Based-Optimizer,基于成本的查询优化器),其中基于规则的查询优化器在10g的版本中彻底消失了。原因是因为RBO最后的查询都是全表扫描,而CBO会根据统计信息选择最优的查询方案。

因此,CBO一旦发现有索引的存在,并且这个索引能帮助提高查询速度,就是使用通过索引进行查询的方法。

oracle创建索引相关推荐

  1. ORACLE创建索引思路

    ORACLE创建索引思路 何为索引 索引是一种数据结构,是为了更快速的访问到数据. 索引是各种关系数据库系统最常见的一种逻辑单元,是关系数据库系统举足轻重的重要组成部分,对于提高检索数据速度有着至关重 ...

  2. oracle怎么么创建索引,Oracle 创建索引,oracle索引怎么创建

    Oracle 创建索引,oracle索引怎么创建 索引是数据库服务器用来加快检索的速度,再通过加了索引的列进行检索 时候,数据库会自动使用索引,使用索引所在的列值进行快速检索,快速定位到 真实的数据内 ...

  3. oracle 创建索引 CREATE INDEX

    CREATE INDEX -- 定义一个新索引 Synopsis CREATE [ UNIQUE ] INDEX name ON table [ USING method ]( { column | ...

  4. oracle 创建索引和视图

    一:    创建索引有两种方式: 1.    自动添加(oracle 会为主键和唯一约束自动添加索引) 自动创建的索引是无法手动删除的,但是当删除主键约束,唯一约束时,对应的索引也会自动删除: 2. ...

  5. oracle创建索引占用表空间吗,oracle创建索引表空间

    或者 drop tablespace 表空间名称 including contents;(表空间下有数据时候用) temporary tablespace 是 oracle 里临时表空间,临时表空间主 ...

  6. oracle添加索引指定表空间,Oracle 创建索引表空间语法-oracle

    Oracle 的索引可分为5种,它们包括唯一索引.组合索引.反向键索引.位图索引和基于函数的索引. 1.创建索引的标准语法 以下为引用内容:  CREATE INDEX 索引名 ON 表名 (列名)T ...

  7. oracle创建索引表,Oracle 大表创建索引

    Oracle 大表创建索引 祖仙教小凡仙 海鲨数据库架构师 有个2亿记录的表,发现需要添加一个联合索引,结果就采用普通的create index index_name on tablename (en ...

  8. Oracle 创建索引语法

    Oracle 的索引可分为5种,它们包括唯一索引.组合索引.反向键索引.位图索引和基于函数的索引. 1.创建索引的标准语法 以下为引用内容: CREATE INDEX 索引名 ON 表名 (列名)TA ...

  9. oracle在线加索引,oracle 创建索引 create index online

    普通创建索引的命令create index会先锁表,然后再创建索引,如果表中数据量很大,会造成阻塞DML语句. 加了online后,可以以非独占的方式创建和删除索引. 但是加online字段有一些限制 ...

最新文章

  1. 使用Maven打包生成的-SNAPSHOT.jar与-RELEASE.jar分别代表什么?SNAPSHOT是什么意思?RELEASE是什么意思?
  2. 只知道GAN你就OUT了——VAE背后的哲学思想及数学原理
  3. 常见的16进制文件头
  4. php日志数据统计,PHP统计Nginx日志的User Agent数据
  5. lamp不解析php,lamp环境无法解析php环境怎么办
  6. 笨方法学python第四版当当_“笨办法”学Python(第3版)
  7. 今日头条视频去重复上传方法-网络营销推广教程 如何完美去除视频字幕和LOGO批量下载快手西瓜视频...
  8. 求教origin拟合蠕变柔量(burgers模型)。
  9. LED恒流驱动芯片NU9910用于LED舞台灯光驱动控制芯片拼对拼SMD802
  10. 如何使用计算机求和公式,excel求和公式怎么用
  11. 1.Android系统源代码目录与系统目录
  12. 1字符集 iso latin_附件一、ISO Latin-1字符集
  13. 第四批四川省工业产品绿色设计示范企业申报范围条件
  14. 斗破苍穹-牛仔版美杜莎
  15. 逆向笔记2(数据宽度_逻辑运算)
  16. 网络编程---TCP/UDP套接字编程原理
  17. 【操作系统⑧】——信号量与PV操作(下)【哲学家进餐问题 AND型信号量 信号量集机制】
  18. sklearn-机器学习笔记
  19. [React Error]: Target container is not a DOM element
  20. c语言for循环开机动画,android8.1开机动画启动分析

热门文章

  1. 【树莓派】树莓派4无痛安装系统(NOOBS篇)
  2. 半直接单目VO | PL-SVO:快速、鲁棒的SLAM线特征跟踪
  3. 魅蓝e android版本,魅蓝E的手机系统是什么
  4. Java面试题整理(转)
  5. 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了
  6. 2017天猫双11关键数据盘点。
  7. Linux查看系统中用户信息,Linux下用于查看系统当前登录用户信息的4种方法
  8. 无法应用转换程序。请检查指定的转换程序路径是否有效。例子:Adobe Acrobat DC (PDF编辑器)卸载不了或者无法重新安装
  9. win10内存占用特别高,但进程显示都不高
  10. 简单的一招,解决Android手机越来越慢的问题