暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL中的secondary索引和聚集索引有什么区别

《MySQL中的clustered索引为什么特别》描述了聚集索引,本文描述secondary index,两者之间关系很大!

secondary index也采用B-Tree,区别就是叶子节点只存key值和clustered key的值,secondary索引结构图:

secondary inedex和聚集索引关系图:

主要核心点:

  • secondary index查询后还要根据clustered key去拿最后的数据
  • secondary index range query的时候,拿数据的时候因为clustered key不确定(page不确定,且要最终排序),所以性能没有clustered index好
  • secondary index会包含clustered key,如果clustered key值比较大,第二索引也会比较大
  • 如果sql语句被secondary index覆盖,就不用去拿实际的数据,直接从叶子节点获取就行,性能比较好

如何判断是否是使用覆盖索引?explain 命令:

  • 如果extra显示using index condition,表示还是要取row data
  • 如果extra显示using index,表示使用了覆盖索引

文章转载自虞大胆的叽叽喳喳,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论