前言
索引有助于提升数据库表的查询速率,极大的缩减查询的时间。但索引的创建需要考虑的因素很多,并非索引越多越好!
创建一般索引的语法
oracle创建一般的常见索引,语法如下所示:
摘录于:努力的小羽儿——oracle创建索引
--创建索引
CREATE [UNIQUE] INDEX <索引名>
ON <基本表名> (<列名> [<次序>],[,<列名> [<次序>]]…);
--说明:
--UNIQUE:规定索引的每一个索引值只对应于表中的唯一记录。
--<次序>:建立索引时指定列名的索引表是ASC(升序)或DESC(降序)。
--索引的创建语句(简洁)
create index 索引名 on 表名(列名);
--标准语法
create index 索引名 on 表名(列名) tablespace 表空间名;
--tablespace 表空间名 可以省略,以下皆省略
--创建唯一索引
create unique index 索引名 on 表名(列名);
--复合索引/组合索引
create index 索引名 on 表名(列名1, 列名2, 列名3, ...);
--反向键索引
create index 索引名 on 表名(列名) reverse;
--删除索引
drop index 索引名 on 表名;
--降序索引
CREATE INDEX 索引名 ON 表名(列名 desc) ; --升序asc
--查看某个表中的所有索引
select * from all_indexes where table_name = '表名'
--查看某个表中建立了索引的所有列
select * from all_ind_columns where table_name = '表名'
前缀索引
前缀索引
这个词在Mysql
中出现的比较多,在oracle中也能创建类似的索引。
索引的创建,会让数据库额外维护一个对应的索引B+树。
如果索引的字段很大,将导致创建索引B+树的大小越大。
如果又想对大数据字段加索引,又想不占用太多的内存,则可以采取前缀索引
。
-- 增加 IMES_INDICATOR_CALCLOG 前缀索引
DECLARE
CNT INTEGER;
BEGIN
select COUNT(0)
INTO CNT
from user_indexes
where table_name = upper('IMES_INDICATOR_CALCLOG')
and index_name = upper('logid_index');
IF CNT = 0 THEN
EXECUTE IMMEDIATE 'create index logid_index on IMES_INDICATOR_CALCLOG left(logid,12)';
END IF;
END;
/
IMES_INDICATOR_CALCLOG
中的logid
是一个uuid
的数据,增加前缀索引,则使用到了LEFT函数。
原文地址:https://blog.csdn.net/qq_38322527/article/details/134728395
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_41012.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。