主要关键知识:
https://www.2cto.com/database/201803/728349.html
system 、const、eq_ref 、ref、ref_or_null、index_merge、unique_subquery、index_subquery、range、index、allpossible_keys:https://www.cnblogs.com/morewindows0/p/9211487.html
聚集索引与非聚集索引聚簇索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。聚集索引中键值的逻辑顺序决定了表中相应行的物理顺序。非聚集索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。
A)聚集索引,表数据按照索引的顺序来存储的。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。
B)非聚集索引,表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,该层紧邻数据页,其行数量与数据表行数据量一致。
简单in or搜索引
https://www.cnblogs.com/yilong-/p/8890901.html
in有索引,比or好
select /delete 并且是关联表用in的索引
https://blog.csdn.net/tiantiandjava/article/details/80064612
delete in没有索引,select有
delete 关联表要inner join就有索引
联合索引
https://www.cnblogs.com/morewindows0/p/9223671.html
ref最高,单个
index看联合索引顺序
索引失效,看联合索引中,对应字段的右边还是否有字段
order By,group by要逆顺序,出现在extra中写use filesort
空值无索引
百分号在右边
非不走索引
is null,is not null也无法使用索引
select for update,批量update
https://www.cnblogs.com/mjbrian/p/7777108.html
btree