【问题标题】:Index on Composite attributes复合属性索引
【发布时间】:2013-03-11 21:35:10
【问题描述】:

当我们在属性上创建索引时,会为此属性创建一棵树。
但是当我们创建一个具有复合属性的索引时会发生什么呢?创建了两棵树?两者都是同一棵树的一部分?什么?

【问题讨论】:

  • 我记得读过一些关于有 1 个索引与来自复合列的连接值的内容。这就是为什么在想要通过复合索引查找时无法恢复列顺序的原因。
  • 你的意思是连接实际值?
  • 是的,我想。我认为 b-tree 的工作原理是这样的
  • 哦,但是我不知道这些值是连接的还是之前应用了某种哈希。
  • 在 Oracle faq 中查看 b-tree 的描述:orafaq.com/node/1403 它可能会帮助您关联到 mysql

标签: mysql sql indexing composite-index


【解决方案1】:

它按照您提到的顺序连接属性。出于同样的原因,如果您在 a、b、c 列上以相同的顺序创建复合索引,则该索引仅在搜索左侧列时才有用

WHERE a=4 ## uses index
WHERE a=4 and b=10 ## uses index
WHERE b=10 ## doesnot use index

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多