请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于最左匹配原则, 复合索引的建立

不太清楚它是如何建立复合索引的, 老师视频上大致说了两个字段的联合索引(a,b )的建立, 先按照a 建b±tree, 然后子节点 中按照b字段排序, 这里如果会有更多字段建立的复合索引, 这样应该不太行;
我能想到的是按照层进行建立B±tree, 具体点就是说 如果建立(a,b,c,d) 索引, 会先按照a进行排序建立 B±tree, 然后此时叶子结点是a排序后的结果, 每个结点可以看成一个数组,这个数组包含a相等, b,c,d不等的 key值(是a,b,c,d的组合值), 然后从叶子结点再往下走, 建立以b为排序根据的子树, 此时所有的叶子结点是以a,b排序的, 然后再往下 是按照c建立B±tree 一直到最后, 此时最终的叶子结点才指向了数据
但是这种树太高了点, 而且 每层从叶子结点建立的新的B±tree 都是和其他叶子结点都是重复的, 这个也不太好.

正在回答

1回答

同学好,应该是长链接的这样的,我里面的表述没错呢,不是同学说的那样

https://www.xuanxuan.site/article/MySQL%E8%81%94%E5%90%88%E7%B4%A2%E5%BC%95%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/

不然不容易满足最左匹配原则,或者树就太长了

0 回复 有任何疑惑可以回复我~
  • 提问者 坐看落花 #1
    这个我理解了, 其实可以把复合索引的建立 看成是单键索引的建立, 换个说法 可以把单个键理解为复合键的一位, 比如key(a,b,c) 可以理解 a是复合建的第一位, 所有的索引项key都是3位的, 排序依次是比较第一位,第二位,第三位, 和我上面说的差不多, 但是上面描述太差了.
    另外老师说的长链接是说数据排列的链表吗? 这个是叶子结点的排列, 这个是结果我是理解的,
    回复 有任何疑惑可以回复我~ 2020-04-01 12:35:59
  • 翔仔 回复 提问者 坐看落花 #2
    同学好,哈哈 我回答的这个长字是zhang,,就是和链接里面的结构一样:)
    回复 有任何疑惑可以回复我~ 2020-04-01 14:12:22
  • 提问者 坐看落花 回复 翔仔 #3
    哦哦, ... 是这个意思啊 , 理解了!
    回复 有任何疑惑可以回复我~ 2020-04-01 15:09:53

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信