简单记录:索引

B+树

一种索引结构,叶子结点有连续的指针,因为是有连续性的,所以比较适合范围查询和模糊查询。

 

Hash

哈希桶结构,数组上有链表,通过哈希算法可以迅速直接的定位到值,但因为hash算法的局限性并不适合范围查询和模糊查询。

 

普通索引 & 主键索引

普通索引:叶子结点保存的是相应的主键的值,之后再通过主键索引去查找对应的行记录。需要查两次

主键索引:叶子结点保存的是整个行记录,可以通过主键直接查询到所有的记录

 

回表

上面提到的普通索引要查两次,先通过普通索引查到主键,再通过主键索引才能查到对应的行记录

这一过程经历了两次查询,就是回表,相对来说会影响查询的效率

 

覆盖索引

如何避免回表?

可以将被查询的字段建立为普通索引,这样第一次查询时直接就获取到了,不再需要回表查询

不要使用Select *,这样必然会再回表去查一次

posted @ 2021-12-07 16:45  YanSss  阅读(26)  评论(0编辑  收藏  举报