问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库索引有哪几种?怎样建立索引?

发布网友 发布时间:2022-04-23 11:03

我来回答

2个回答

热心网友 时间:2022-04-07 20:12

1、按照索引列值的唯一性,索引可分为唯一索引和非唯一索引;

create index 索引名 on 表名(列名) tablespace 表空间名;

建立主键或者唯一约束时会自动在对应的列上建立唯一索引;

2、索引列的个数:单列索引和复合索引;

3、按照索引列的物理组织方式。

CREATE UNIUQE | BITMAP INDEX <schema>.<index_name>     ON <schema>.<table_name>     (<column_name> | <expression> ASC | DESC,      <column_name> | <expression> ASC | DESC,...)     TABLESPACE <tablespace_name>     STORAGE <storage_settings>     LOGGING | NOLOGGING     COMPUTE STATISTICS     NOCOMPRESS | COMPRESS<nn>     NOSORT | REVERSE     PARTITION | GLOBAL PARTITION<partition_setting>

使用USER_IND_COLUMNS查询某个TABLE中的相应字段索引建立情况

使用DBA_INDEXES/USER_INDEXES查询所有索引的具体设置情况。

在Oracle中的索引可以分为:B树索引、位图索引、反向键索引、基于函数的索引、簇索引、全局索引、局部索引等,下面逐一讲解:

一、B树索引:

最常用的索引,各叶子节点中包括的数据有索引列的值和数据表中对应行的ROWID,简单的说,在B树索引中,是通过在索引中保存排过续的索引列值与相对应记录的ROWID来实现快速查询的目的。其逻辑结构如图:

可以保证无论用户要搜索哪个分支的叶子结点,都需要经过相同的索引层次,即都需要相同的I/O次数。

B树索引的创建示例:

create index ind_t on t1(id) ;

注1:索引的针对字段创建的,相同字段不能创建一个以上的索引;

注2:默认的索引是不唯一的,但是也可以加上unique,表示该索引的字段上没有重复值(定义unique约束时会自动创建);

注3:创建主键时,默认在主键上创建了B树索引,因此不能再在主键上创建索引。

二、位图索引:

有些字段中使用B树索引的效率仍然不高,例如性别的字段中,只有“男、女”两个值,则即便使用了B树索引,在进行检索时也将返回接近一半的记录。

所以当字段的基数很低时,需要使用位图索引。(“低”的标准是取值数量 < 行数*1%)

位图索引的逻辑结构如上图所示:索引中不再记录rowid和键值,而是将每个值作为一列,用0和1表示该行是否等于该键值(0表示否;1表示是)。其中位图索引的行顺序与原表的行顺序一致,可以在查询数据的过程中对应计算出行的原始物理位置。

位图索引的创建示例:

create bitmap index ind_t on t1(type);

注:位图索引不可能是唯一索引,也不能进行键值压缩。

三、反向键索引:

考虑这个情况:某一字段的值是1-1000顺序排列,建立B树索引后依旧递增,到后来该B数索引不断在后面增加分支,会形成如下如的不对称树:

反向键索引是一种特殊的B树索引,在存储构造中与B树索引完全相同,但是针对数值时,反向键索引会先反向每个键值的字节,然后对反向后的新数据进行索引。例如输入2008则转换为8002,这样当数值一次增加时,其反向键在大小中的分布仍然是比较平均的。

反向键索引的创建示例:

create index ind_t on t1(id) reverse;

注:键的反转由系统自行完成。对于用户是透明的。

四、基于函数的索引:

有的时候,需要进行如下查询:select * from t1 where to_char(date,'yyyy')>'2007';

但是即便在date字段上建立了索引,还是不得不进行全表扫描。在这种情况下,可以使用基于函数的索引。其创建语法如下:

create index ind_t on t1(to_char(date,'yyyy'));

注:简单来说,基于函数的索引,就是将查询要用到的表达式作为索引项。

五、全局索引和局部索引:

这个索引貌似很复杂,其实很简单。总得来说一句话,就是无论怎么分区,都是为了方便管理。

具体索引和表的关系有三种:

1、局部分区索引:分区索引和分区表1对1

2、全局分区索引:分区索引和分区表N对N

3、全局非分区索引:非分区索引和分区表1对N

创建示例:

首先创建一个分区表

create table student

(

stuno number(5),

sname vrvhar2(10),

deptno number(5)

)

partition by hash (deptno)

(

partition part_01 tablespace A1,

partition part_02 tablespace A2

);

创建局部分区索引(1v1):

create index ind_t on student(stuno)

local(

partition part_01 tablespace A2,

partition part_02 tablespace A1

); --local后面可以不加

创建全局分区索引(NvN):

create index ind_t on student(stuno)

global partition by range(stuno)

(

partition p1 values less than(1000) tablespace A1,

partition p2 values less than(maxvalue) tablespace A2

); --只可以进行range分区

创建全局非分区索引(1vN)

create index ind_t on student(stuno) GLOBAL;

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。
具体步骤如下:/导致这种情况的原因主要是……

热心网友 时间:2022-04-07 21:30

数据库索引分为以下6种:

1、B树索引

2、位图索引

3、反向键索引

4、函数索引

5、删除索引

6、重建索引

建立索引

IF NOT EXISTS (SELECT * FROM sysindexes WHERE id=OBJECT_ID('Sales.Orders') AND name='idx_nc_orderdate')

CREATE NONCLUSTERED INDEX idx_nc_orderdate ON Sales.Orders(orderdate);

GO

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 索引结构 是物理结构 还是逻辑结构 数据库中索引的结构和什么情况下不适合建索引 索引数据结构都有哪些? 分别有什么区别呢? 一般都采用什么结构的呢? mysql的索引结构是怎么样的 什么是静态索引结构?什么是动态索引结构?它们各有哪些优缺点? 什么是索引结构? B站上那些手机清灰视频,就是把手机声音开最大清灰,是真的有用吗 vivo手机怎么震灰 华为手机怎么抖灰? 格林盈璐灭蚊灯对人体有辐射吗?uv灯产生360-400nm的光线。请详细介绍,谢谢! ios屏幕连点器无需越狱 音响外壳有灰尘怎么清理? jba户外音响怎么清理内存 如何清洁iphone音响 音响里有灰尘怎么办,要怎样清理? 音响平时应该怎么去清理洁净呢? 音响有点脏,可以用水洗吗? 音响要如何正确清理? 请教:音箱的喇叭布脏了,怎样处理 小度音响外面那层布脏了应该怎么清洗呢 很困扰我啊? 按照存储结构划分,索引分为哪两类?各有何作用 数据库索引有哪几种,怎样建立索引 数据库索引文件一般采用什么数据结构? mysql 索引有哪些?各&#x2F64;用了&#xF9BA;哪些数据结构 什么是倒排索引 身份证照片要求是什么? 身份证照片有什么要求? 婴儿身份证照片要求 身份证照片尺寸的宽和高各是多少毫米? 第三代身份证有什么不一样的。谁有图片正面照? 身份证哪面才是正面啊,带字的还是照片的? 拍身份证照片有什么要求? 身份证上的照片可以自己提供吗? 苹果触控怎么设置? 蛋糕的制作方法300字作文(说明文) 蛋糕的制400百字的说明文? 制作蛋糕的说明文? 制作蛋糕的说明文 介绍蛋糕的说明文400字。急!!! 介绍蛋糕的说明文400字.急,随便什么蛋