我应该使用mysql复合索引

时间:2010-02-15 18:32:24

标签: mysql indexing full-text-search composite

我对mysql的索引策略有疑问 - 主要是何时使用复合索引

我有一个相当常见的关系数据库场景,继承我的表设置:

Maintable - table consisting of "products" including brandid, merchantid 

所以我创建了一个表来存储品牌和商家

Brandtable - brandname, brandid
Merchanttable - merchantname, merchantid

当我查询Maintable时,我有时会查询brandid,有时候是针对商家,有时是两者。在这种情况下最好使用什么,每列上的单个索引,或由两者组成的复合索引?

此外,如果我想在全文搜索中包含brandname和merchantname,我将如何实现这一目标?

干杯:)

1 个答案:

答案 0 :(得分:2)

在这种情况下,您应该为每列使用单独的索引。如果您的查询涉及该复合索引中最左侧的列,则MySQL只能使用复合索引。

例如,如果您的综合索引为(brandid,merchantid),那么如果您在brandidbrandidmerchantid上进行查询,则会考虑该索引。如果您只查询merchantid

,则不会