索引
索引的定义:
再Sql Server 数据库中的索引分为聚集索引和非聚集索引
聚集索引:当数据的实际存储数据与索引的数据一致就把该索引叫做聚集索引
非聚集索引:当索引的数据与实际的存储数据不一致时叫做非聚集索引
没张表的主键默认就是聚集索引
我们把主键作为聚集索引,如果我们会经常用标准别的字段来查询数据时,我们都可以将此字段设为索引
例如:
有一张student表
create table student
(
stuId int primary key not null,
stuName varchar(30), --学生姓名
stuAge int, ---学生年龄
stuMath int, --学生数据成绩
stuChinese int, --学生语文成绩
)
stuId字段是主键 所以它默认为聚集索引
如果我们要经常用学生年龄,或者学生数学成绩或者语文成绩查询学生表
那么我们都可以再stuAge,stuMath,stuChinese列中建立非聚集索引,这样就可以很大的提高查询的数据
索引的原理:
索引就像一个字段的目录,字典如果目录,当我们需要查询某个字的时候,就只有从第一页开始查直到找到我们需要的字(当然人肯定比电脑
聪明,所以就算没有目录也不会从第一页开始找,但电脑会)。
一张表就相当与一部字典,表中有了索引,就会再索引这个目录中查找我们需要的数据,所以就能很大提高查询效率
当将表中的某一字段上设置了索引,在索引中他会将此字段列排序,或者分类,当我们要使用此类查询数据时,它会在此列排序后的
列表中通过一些算法查询出我们需要的数据。
索引的缺点:
存储索引需要空间,所以创建索引会扩大数据量,当我们数据量很大时,索引建立的不规范也会影响数据库性能。
会影响在对表执行增删改时的性能,例如当对表添加一行数据时,如果有索引,在索引中他要确定在新添加行的位置
添加因子:
举一例:
命令新来的一位同学,必须做在第一个座位,那么其他所有的同学都必须向后移动一个位置
如果索引的时候,会隔一段距离,在空一段距离,当有新的数据添加的时候就不用挪动全表了。
其实创建索引是一页一页的创建的,可以规定每一页只能在其多少种放入数据(假设是70%),当每一页数据满了70%,它会移动下一页
这样就为索引留了空位,以便后天添加数据
利用添加因子就解决了,添加数据带来移动挪动全表了。
创建索引:
可以用设计器,也可以查帮助文档,就不说了