我对mysql的索引策略有疑问 - 主要是何时使用复合索引
我有一个相当常见的关系数据库场景,继承我的表设置:
Maintable - table consisting of "products" including brandid, merchantid
所以我创建了一个表来存储品牌和商家
Brandtable - brandname, brandid
Merchanttable - merchantname, merchantid
当我查询Maintable时,我有时会查询brandid,有时候是针对商家,有时是两者。在这种情况下最好使用什么,每列上的单个索引,或由两者组成的复合索引?
此外,如果我想在全文搜索中包含brandname和merchantname,我将如何实现这一目标?
干杯:)
答案 0 :(得分:2)
在这种情况下,您应该为每列使用单独的索引。如果您的查询涉及该复合索引中最左侧的列,则MySQL只能使用复合索引。
例如,如果您的综合索引为(brandid,merchantid)
,那么如果您在brandid
或brandid
和merchantid
上进行查询,则会考虑该索引。如果您只查询merchantid
,则不会