今天我们来聊一聊MySql索引的那些事,在这篇文章中,我会主要聊聊InnoDB下索引的数据结构,索引如何起作用的,如何更好的利用索引提高效率。
一、什么是索引
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。就像我们以前用的新华字典的目录一样,能帮助我们快速查询到某一个字。
二、索引的分类
分类角度 | 索引名称 |
数据结构 | B+树,Hash索引,R-Tree等 |
存储层面 |
聚簇索引,非聚簇索引 |
逻辑层面 | 主键索引,普通索引,复合索引,唯一索引,空间索引等 |
三、索引实例分析(以InnoDB为例)
3.1 InnoDB下索引的结构
InnoDB下,表都是根据主键顺序以索引的形式存放的,这种数据存储方式也被称为聚簇索引,“聚簇”就是表示数据行和相邻的键值紧凑的存储在一起,也就是数据行实际上是存储在索引的叶子页中。我们创建一张表来实际说明下InnoDB下的索引结构,建表语句如下:
create t<span>本文来源gaodai#ma#com搞*!代#%^码$网*</span>able person(id int primary key, age int not nullindex (age)engine=InnoDB;
然后我们插入五条数据分别为(1,15),(2,17),(6,20),(10,18),(19,21),索引的树结构如下: