数据库-索引

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ld705454682/article/details/79981059

1.簇索引:簇索引改变了表中数据存放的物理位置。
簇索引3个优势:
(1)使用簇索引的表将占用最小的磁盘空间。因为数据库在插入新行时会自动地重用以前分配给删除行的空间
(2)对基于簇集索引的列值进行查询时,会有更快的执行速度,因为所有值在物理磁盘上相互靠近
(3)基于簇集索引的列以升序显示数据查询,不再需要oder by子句,因为表的数据本身已按所要求的输出顺序排列。
注:(1)一个表中只能创建一个簇索引。因为表行必须以簇集索引的顺序排列,而单个表在磁盘上只能有一个物理记录排列方式。
(2)在对表创建了一个簇集索引之后,在插入新行或更新簇集索引一部分的列值时,数据库将自动重新排序。因此对于经常大量插入行或更新索引列值的表,尽量不要建立簇集索引。
2.非簇索引(默认)
3.查询时使用索引,where子句中的条件字段之一必须是索引字段,当表中有一个或多个索引后,数据库会自动决定使用哪个索引,也可以人为指定使用哪个索引。
4.多字段非簇索引的创建
(1)在一个表中,在两个或多个字段上创建多字段索引,称为复合索引。
例如:在选课表中,查询某学生选秀的某门课程的成绩。只在学生姓名字段上建立索引,执行查询时,系统将利用索引找出张三同学的所有选课记录,然后再对课程逐一扫描,找到课程为数学的记录。为提高查询效率可同时为姓名和课程两个字段建立一个索引。注:因为学生数一般远大于课程数,所以如果只在一个字段上建立索引,以建姓名字段为好。
(2)创建多字段索引时,各字段排列顺序决定了其优先级,排列越靠前,具有越高的优先级。
5.使用索引几点原则
(1)小数据表使用索引不能提高效率,不需创建
(2)当用户要检索的字段的数据包含很多数值或很多空值(NULL)时,为该字段创建索引会大大提高检索效率。
(3)当用户查询表中数据,查询结果包含的数据(行)较少,一般少于数据总数的25%时,使用索引会显著提高查询效率。反之,如果用户的查询操作返回结果总是包含大量数据,索引的用处不大。
(4)索引列在where子句中应频繁使用。
(5)先装数据,后建索引。否则每插入一条数据都要维护一次索引。
(6)索引提高了数据检索的速度,但也降低了数据更新的速度。如果要对表中的数据进行大量更新,我们最好先销毁索引,等数据更新完毕后再创建索引,这样会提高效率。
(7)索引需要占用数据库空间。在设计数据库时,要把需要的索引空间考虑在内。
(8)尽量把表和它的索引放在不同的磁盘上,这样会提高查询速度。

猜你喜欢

转载自blog.csdn.net/ld705454682/article/details/79981059