什么是索引

本文详细介绍了数据库索引的概念,包括其在数据检索中的作用,以及不同类型的索引如单列索引、复合索引、唯一索引和位图索引的创建与应用。同时,讨论了索引的优点(提高查询速度)和缺点(降低更新效率,占用存储空间)。此外,还提到了根据实际需求选择合适的索引以及如何删除索引的方法。
摘要由CSDN通过智能技术生成

1.什么是索引:

 在数据中,索引相当于字典的目录一下,通过索引可以快速的检索数据。

被面试问道索引的数据结构,可以参考这篇文章

https://www.jianshu.com/p/2f562c7f10a0

2.索引的特点:

 优点:

 可以提高数据库检索数据的速度

 缺点:

 只能提高查询速度,相反会降低新增,修改,删除的效率

 浪费存储空间  索引不是越多越好,根据实际情况添加不同的索引

3.索引的创建:

 单列索引

 适用场合:基于单个列建立索引,如果经常在where子句中引用某个列,那么应该考虑在该列上建立单列索引。

 语法

-- ename字段上面添加索引

CREATE INDEX index_ename ON EMP(ename);

-- 经常查询某一列 那么可以给这一列加索引

select * from emp where ename='SCOTT'

 建立复合索引:

 适用场合:经常查询的时候查询的是多列,如果想提高查询速度,可以建立复合索引查询

 语法

-- 添加复合索引

CREATE INDEX index_job_deptno ON EMP(job,deptno);

--查询语句

SELECT * FROM EMP WHERE job='ANALYST' AND deptno=20;

 建立唯一索引:

 适用场合:数据库表中的某一个字段不能重复,例如身份证号码.....

 语法

-- 给身份证号码,添加一个唯一索引

CREATE UNIQUE INDEX index_idcard on users(idcard);

建立位图索引

 适用场合:位图索引适用于低基数列,即该列的值是可数的,例如员工的工种,图书的类别

 语法:

-- 位图索引:适用于基础列(员工工种,图书类别,电影类别)

CREATE BITMAP index Index_job on EMP(job);

建立函数索引

 适用场合:数据库表中的某一个字段,经常以函数的形式被调用

 语法:

-- 函数索引

CREATE INDEX index_func_ename ON emp(UPPER(ename)); -- 提高SQL查询速度

SELECT * FROM EMP WHERE ename=UPPER('scott');

4.索引的删除:

 语法:

DROP INDEX 索引名;

drop index index_idcard;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Johnny_Cheung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值