版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fjxcsdn/article/details/86591399
1.什么是索引?
索引就好比目录,什么是索引这个问题,就好比什么是目录的问题,那目录是用来做什么的?新华字典为什么要用目录?
数据库中的索引是某个表中一列或多列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
2.为什么要用索引?
字典没有目录,就需要一页一页的去找,有了目录,查询目录即可,检索速度会得到很大的提高。——提高查询效率。
3.为什么有了索引查询速度就提高了?
索引意味着排序,它一定用到了排序,以及各种排序算法。
4.索引的种类
聚集索引(物理):一个数据表中只能有一个聚集索引。例如班级中的学号,考试按学号坐,我们的前后位置是一定的。
非聚集索引(逻辑):一个数据表中可以有多个非聚集索。如果班级中的人数按照年龄排序,位置不一定。
5.索引有缺点么?
字典中多了目录,多了目录就相当用多用了纸张,数据表中有了索引,索引页占用额外存储空间,但是效率高。
如果执行增删改语句,都需要对目录进行更新,这一样增删改的效率变低。
3.索引的创建与删除
创建一个非聚集索引,关键字为NONCLUSTERED:
CREATE NONCLUSTERED INDEX UserIndex --创建一个名称为UserIndex非聚集索引
ON UserInfo(RegTime) --为UserInfo表的RegTime字段创建索引
删除索引:drop index 表.索引名称
drop index UserInfo.UserIndex
创建一个聚集索引,关键字为CLUSTERED。通过图中的索引我们可以看到,默认ID为主键后,数据库自动创建了以ID为主键的聚集索引。
我们可以打开数据库查询——查询选项——高级里面勾选如图:可以查看SQL语句的读取信息效率
数据库存储数据是以页为单位,每页总大小为8KB
逻辑读取:从缓存中读取数据
物理读取:从磁盘上读取数据
预读取:一种性能优化机制,在执行查询时,先预测执行”查询计划”所需要的数据与索引页,然后在查询实际使用这些页之前将它们读入缓冲区高速缓存
对于索引基础学习我们先学习到这里,合理的建立索引和使用索引能提高查询效率,后期再给大家分享关于索引在项目中的实际应用。