【问题标题】:mysql composite index thoerymysql复合索引理论
【发布时间】:2012-09-11 23:51:53
【问题描述】:

我的 sql 是:select id,name,city,type from company where city=? and type=?。所以我创建了两个索引:一个在city字段上,另一个在type字段上。所以我的问题是:我是否需要在city和type上创建一个复合索引?如果需要,为什么?两个复合索引btree索引如何?结构 VS 单索引 btree 结构。 提前致谢

【问题讨论】:

    标签: mysql composite-index


    【解决方案1】:

    是的,在这种情况下,您需要有一个复合 city + type 索引才能获得最大可能的性能。

    只要mysql一次只能使用一个索引(很少有例外,这里不是这种情况)-它只会检查citytype以减少所有表数据,然后执行扫描以找到确切的行。

    如果您有复合索引 - 那么 mysql 将能够同时解析 city=? and type=? 条件,因此不需要额外的扫描来返回结果集。

    二合索引btree索引结构VS单索引btree结构如何。

    没有 2 个复合 btree 结构。如果创建复合索引,则会创建包含两列数据的单个 b 树结构。这就是复合索引中的顺序很重要的原因。

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多