Oracle学习笔记二十七:索引的使用

打印 上一主题 下一主题

主题 769|帖子 769|积分 2307

一、索引概念

• 在关系数据库中,索引是一种与表有关的数据库对象,它可以使对应于表的SQL查询语句执行得更快。
• 索引的作用类似于图书的目录,可以根据目录中的页码快速找到所需的内容。
• 对于数据库来说,索引是一个必选项,对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。
二、索引分类

2.1、按物理存储方式分类
  • B*树索引
    • B*树索引的存储结构类似书的索引结构,有分支和叶两种类型的存储数据块。分支块相当于书的大目录,叶块相当于索引到具体的书页。
  • 位图索引
    • 位图索引的存储主要用来节省空间,减少Oracle对数据块的访问,它采用位图偏移方式来与表的行ID对应,采购位图索引一般是重复值太多的表字段。
2.2、按逻辑功能分类
  • 唯一索引
    • 唯一索引意味着不会有两行记录相同的索引键值。
  • 非唯一索引
    • 非唯一索引即不对索引列的值进行唯一性限制。
三、索引原则

在正确使用索引的前提下,索引可以提高检索相应表的速度。
• 下列情况可以创建索引
  • 字段取值分布范围很广
  • 字段中包含大量空值
  • 字段经常出现在where子句或连接条件中
  • 表经常被访问、数据量很大,且通常每次访问的数据量小于记录总数的2%-4%。
• 下列情况不适合创建索引
  • 表很小
  • 字段不经常出现在where子句中
  • 每次访问的数据量大于记录总数的2%-4%
  • 表经常更新
  • 被索引的字段作为表达式的一部分被引用
四、索引语法

• 索引创建的语法
  • create [unique|bitmap] index 索引名称
    on 表名(列名1[desc|asc],……)
• 创建索引
  1. create index ix_emp_ename on emp(ename);
复制代码
• 删除索引
  1. drop index ix_emp_ename;
复制代码
 

来源:https://www.cnblogs.com/atomy/archive/2022/06/16/16381678.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表