大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说Oracle学习笔记二十七:索引的使用,希望您对编程的造诣更进一步.
一、索引概念
• 在关系数据库中,索引是一种与表有关的数据库对象,它可以使对应于表的SQL查询语句执行得更快。
• 索引的作用类似于图书的目录,可以根据目录中的页码快速找到所需的内容。
• 对于数据库来说,索引是一个必选项,对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。
二、索引分类
2.1、按物理存储方式分类
• B*树索引
• B*树索引的存储结构类似书的索引结构,有分支和叶两种类型的存储数据块。分支块相当于书的大目录,叶块相当于索引到具体的书页。
• 位图索引
• 位图索引的存储主要用来节省空间,减少Oracle对数据块的访问,它采用位图偏移方式来与表的行ID对应,采购位图索引一般是重复值太多的表字段。
2.2、按逻辑功能分类
• 唯一索引
• 唯一索引意味着不会有两行记录相同的索引键值。
• 非唯一索引
• 非唯一索引即不对索引列的值进行唯一性限制。
三、索引原则
在正确使用索引的前提下,索引可以提高检索相应表的速度。
• 下列情况可以创建索引
• 字段取值分布范围很广
• 字段中包含大量空值
• 字段经常出现在where子句或连接条件中
• 表经常被访问、数据量很大,且通常每次访问的数据量小于记录总数的2%-4%。
• 下列情况不适合创建索引
• 表很小
• 字段不经常出现在where子句中
• 每次访问的数据量大于记录总数的2%-4%
• 表经常更新
• 被索引的字段作为表达式的一部分被引用
四、索引语法
• 索引创建的语法
• create [unique|bitmap] index 索引名称
on 表名(列名1[desc|asc],……)
• 创建索引
create index ix_emp_ename on emp(ename);
• 删除索引
drop index ix_emp_ename;
原文地址:https://www.cnblogs.com/atomy/archive/2022/06/16/16381678.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5104.html