索引基础总结mysql(innodb)

索引

两大类

1.聚集索引(也有人叫聚簇索引,也可以叫做一级索引)

定义:存储该索引的一行记录的值

一张表有且只有一个聚集索引

规则如下:

(1)如果表定义了主键,则主键就是聚集索引

(2)如果表没有定义主键,则会找一个唯一非空的索引做聚集索引

(3)都没有,InnoDB会创建一个隐藏的row-id作为聚集索引





2.非聚集索引(普通索引,也被称为二级索引)

定义:存储该索引的主键,和该字段的值。  
(例如:定义了id为主键,age为普通的索引。那么通过  age索引 可以一次查询出id和age的值)

例如:

SELECT
AVG( avg ) AS 平均年龄
FROM
test_tab
WHERE
name LIKE '张%'


假如 name 与 age 都包含在索引里面。 查询就不需要去检索表中的数据。

覆盖索引

定义:就是我们的select id,age from tb_name where age=18;返回值覆盖了索引值,就是索引覆盖。

Guess you like

Origin blog.csdn.net/qq_43472248/article/details/119253187