Oracle索引的作用和用法
2021/9/10 2:04:19
本文主要是介绍Oracle索引的作用和用法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、索引的概念
一种独立于表的模式对象,可以存储在于表不同的磁盘或表空间中
索引被删除或损坏时,不会对表产生影响,其影响的只是查询的速度(通过指针加速Oracle服务器的查询速度、通过快速定位数据的方法,减少磁盘I/O)
索引的内建工作对用户是透明的,由数据库自动维护,我们只需要指定是否添加索引
索引是为表中字段添加的。当一个字段经常出现在WHERE中作为过滤条件,或 ORDER BY 或 DISTINCT中时可以为其添加索引以提高查询效率。
在删除一个表时,所有基于该表的索引会自动被删除。
二、索引的类型(常用)
1、B-树索引:按平衡树结构组织的索引,是最常用的索引,也是默认创建的索引类型。B-树索引占用空间多,适合索引值取值范围广(基数大)、重复率底的应用。
2、位图索引:按位图结构组织的索引,适合索引值取值范围小(基数小),重复率高的应用。
三、创建索引
1、创建索引的情况:
①列中数值分布范围很广
②列经常在where子句或连接条件中出现
③表经常被访问而且数据量很大,访问的数据大概占数量总量的2% - 4%
④表经常更新
2、自动创建:在定义primary key 或 unique 约束后系统自动在相应的列上创建唯一索引
3、手动创建:用户可以在其他列上创建非唯一的索引,以加快查询
(1)单一索引
语法:create index 索引名 on 表名(字段名);
create index idx_emp_ename on emp(ename);
(2)复合索引:基于多个列的索引
语法:create index 索引名 on 表名(字段名1,字段名2);
create index idx_emp_job_sal on emp(job,sal);
(3)创建基于函数的索引
create index emp_ename_upper_idx on emp(upper(ename));
四、修改索引
1、重命名索引:
alter index stu_name_index rename to sname_index;
2、合并索引(表使用一段时间后在索引中会产生碎片,此时索引效率会降低,可以选择重建索引或者合并索引,合并索引方式更好些,无需额外存储空间,代价较低):
alter index stu_name_index coalesce;
3、重建索引:
方式一:删除原来的索引,重新建立索引
方式二:alter index stu_name_index rebuild;
五、查询索引
可以使用数据字典视图user_indexes 和 user_ind_columns 查看索引的信息
查看索引个数和类别:select * from user_indexes where table='表名' ;
查看索引被索引的字段:select * from user_ind_columns where index_name=upper('&index_name');
我们可以通过类似下面的语句来查看一个表的索引的基本情况:
select user_ind_columns.index_name,user_ind_columns.column_name, user_ind_columns.column_position,user_indexes.uniqueness from user_ind_columns,user_indexes where user_ind_columns.index_name = user_indexes.index_name and user_ind_columns.table_name = ‘你想要查询的表名字’;
六、删除索引
使用 drop index 命名删除索引:drop index stu_name_index;
注意:只有索引的拥有者或者drop any index权限的用户才可以删除索引;删除操作时不可以回滚的
参考:oracle中索引的使用 - 一帘幽梦&nn - 博客园 (cnblogs.com)
Oracle 索引的作用和用法_21号先锋者-CSDN博客_oracle添加索引的作用
查看Oracle的表中有哪些索引 - 漠漠颜 - 博客园 (cnblogs.com)
这篇关于Oracle索引的作用和用法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用