mysql数据库索引解析

    为了提高数据库查询速度,我们一般都会给数据库建立索引。所谓索引就是通过索引值快速找到数据所在位置,从而实现快速访问。而索引还有另一个作用就是不用真正查看数据而做一些判断,例如查看是否存在所寻数据。

    mysql的索引一般为B+树,以InnoDB为例,有两种类型的B+树索引,一种称为聚簇索引,一种称为二级索引。聚簇索引的叶子节点就是数据节点,往往是主键作为聚簇索引,二级索引的叶子节点存放的是KEY字段加主键值。因而通过二级索引访问数据,在找到叶子节点后,还需根据主键值去聚簇索引找到具体的数据行。还有一种索引称为复合索引,可以在多个列上创建索引,排序规则为:先比较第一列,再比较第二列,以此类推。

    由于B+数索引是排好序的,因此可以快速定位到所需数据,同理对于order by/group by/ distinct/max/min均可以快速找到结果。但是索引同时会降低写的效率,因为插入或者修改数据都有可能意味着索引的改变。

猜你喜欢

转载自blog.csdn.net/smartValentines/article/details/80218750
今日推荐