数据库表 索引

目录

一、索引的分类

1、按存储形式:

        1)B-TREE索引:

        2)位图索引:

        3)反向键索引:

        4)基于函数的索引:

2、按唯一性:

        1)唯一索引:

3、按列的个数:

        1)单列索引:

        2)复合索引(也称为联合索引):

二、索引的优缺点

1、优点:

2、缺点:

三、索引跟主键的区别

四、确认索引用没用上

五、一般会在什么情况下加索引

六、索引创建

七、索引什么情况下会失效


一、索引的分类


1、按存储形式:

即索引中存储的内容不同。

        1)B-TREE索引:

        索引列原始数据+ROWID,工作中最常见、使用范围最广的索引,列基数比较大的时候使用(行业、身高)。

        2)位图索引:

        位图+ROWID,列基数比较小的时候使用(性别、婚姻状况)。

        3)反向键索引:

        索引列原始数据的反向存储+ROWID,为防止B-TREE索引在某叶上数据量占比过高而使用的一种索引。

        4)基于函数的索引:

        将索引列原始数据经函数处理后存储+ROWID。

2、按唯一性:

索引列中的数据是否有重复值。

        1)唯一索引:

        索引列中不可能出现重复值。

3、按列的个数:

索引覆盖的列的个数。

        1)单列索引:

        基于一个列建立的索引。

        2)复合索引(也称为联合索引):

        基于两个或两个以上列建立的索引。

二、索引的优缺点

1、优点:

        1)大大加快数据的检索速度。
        2)创建唯一性索引,保证数据库表中每一行数据的唯一性。
        3)加速表和表之间的连接。
        4)在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。

2、缺点:

        1)索引需要占物理空间。

         2)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

三、索引跟主键的区别

1、主键一定是唯一性索引,唯一性索引并不一定就是主键。

2、一个表中可以有多个唯一性索引,但只能有一个主键。

3、主键列不允许空值,而唯一性索引列允许空值。

4、索引可以提高查询的速度。

5、主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中。

6、应用范畴不同 种类不同(唯一索引、主键索引和聚集索引主键只是其中的一种)创建方式不同。

四、确认索引用没用上

通过explain查询sql执行计划,主要看key使用的是哪个索引。

五、一般会在什么情况下加索引

1、主键自动建立唯一索引。

2、频繁作为查询条件的字段应该创建索引。

3、查询中与其他表关联的字段,外键关系建立索引。

4、单键/组合索引的选择,组合索引的性价比更高。

5、查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。

6、查询中统计或者分组字段。

7、过滤条件好的字段选择一段选择加索引。

六、索引创建

CREATE INDEX 索引名 ON 表名 (列)

七、索引什么情况下会失效

1、对列进行计算或者使用函数时。

2、使用了反向操作或者link时。

3、在where语句中使用or时,如果有一个列没索引,那么其他列就会失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值