索引
作者:互联网
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库中表的数据.索引的实现通常使用B树或B+树(mysql常用的是索引B+树),除了数据之外,数据库系统还维护为满足特定查找算法的数据结构,这些数据结构以某种方式引用数据.这种数据结构就是索引。
索引的优点
1.通过创建索引,可以在查询的过程中,提高系统的性能;
2.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性;
3.在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间;
索引的缺点
1.创建索引和维护索引要耗费时间,而且时间随着数据量的增加而增大;
2.索引需要占用物理空间,如果要建立聚簇索引,所需要的空间会更大;
3.在对表中的数据进行增加删除和修改时需要耗费较多的时间,因为索引也要动态地维护;
适用场景
1.经常需要搜索的列上;
2.作为主键的列上;
3.经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
4.经常需要根据范围进行搜索的列上;
5.经常需要排序的列上;
6.经常使用在where子句上面的列上;
索引的分类
聚簇索引:表记录的排列顺序和索引的排列顺序一致,所以查询效率快。只要找到第一个索引值记录,其余连续性的记录在物理上一样连续存放。聚簇索引的缺点就是修改慢,因为为了使表记录和索引的排列顺序一致在插入记录的时候,会对数据页重新排序。
非聚簇索引:表记录和索引的排列顺序不一定一致,两种索引都采用B+树的结构,非聚簇索引的叶子层并不和实际数据页相重叠,而采用叶子层包含一个指向表记录的指针,非聚簇索引层次多,不会造成数据重排。
标签:数据结构,记录,列上,索引,排序,数据 来源: https://blog.51cto.com/14289397/2540252