宠辱不惊,闲看庭前花开花落
去留无意,漫随天外云卷云舒


数据库运维农民工,有兴趣可以关注我的
微信公众号:『SQL数据库运维』

简单了解Oracle数据库中如何创建索引

首发微信公众号:SQL数据库运维

原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247486530&idx=1&sn=e5132af812a8fda7d86e1f17ecaf3a17&chksm=ea375832dd40d124027c20849d71e1c55efdd89e9ddf6e93cf310926097ea6fe14424f5187c8&token=2092690319&lang=zh_CN#rd


索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。


 

索引的创建语法

CREATE INDEX 索引名 ON 表名(列名) TABLESPACE 表空间名;
--举例
CREATE INDEX STUINFO_STUID ON STUINFO(STUID) TABLESPACE USERS;

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

CREATE INDEX 索引名 ON 表名(列名1, 列名2, 列名3, ...) TABLESPACE 表空间名;
--举例
CREATE INDEX STUINFO_STUID_IDNUMBER ON STUINFO(STUID,IDNUMBER) TABLESPACE USERS;

注意:注意到在命名时的习惯了吗?使用"表名_字段1名_字段2名"的方式。

删除索引语法

DROP INDEX 索引名;

查看某个表中的所有索引语法,表名大写。

SELECT * FROM ALL_INDEXES WHERE TABLE_NAME = '表名'  

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

SELECT * FROM ALL_IND_COLUMNS WHERE TABLE_NAME = '表名'

需要注意的是,建立索引并不是越多越好,而且建立的越多,也未必会快,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销也不会很大,也没有必要建立另外的索引,因此,应该通过实际的使用环境来判断是否需要建立索引,在需要的时候建立索引。

以上介绍的只是一些十分基本的东西,如果想要了解更多,欢迎关注,一起探讨,优化数据库的检索速度,体验飞一般检索速度。

posted @ 2024-10-22 14:48  蓝涩街灯  阅读(27)  评论(0编辑  收藏  举报