Mysql 当where条件由';和';和';或';组合?

Mysql 当where条件由';和';和';或';组合?,mysql,indexing,Mysql,Indexing,我的mysql查询如下所示,我需要创建索引来增强结果获取 SELECT * FROM tbl_name WHERE seasonid = 1 AND status = 'N' AND month = 10 AND (team_a = 'India' OR team_b = 'India'); 提前感谢(a=1或a=3)在(1,3)中转换为a,这有时是可优化的。然而,你没有这种情况。因此,或两侧的表达式对于索引是无用的 INDEX(seasonid,status,month)

我的mysql查询如下所示,我需要创建索引来增强结果获取

   SELECT * FROM  tbl_name 
    WHERE seasonid = 1 AND status = 'N' 
AND month = 10 AND (team_a = 'India' OR team_b = 'India');
提前感谢

(a=1或a=3)
在(1,3)中转换为
a,这有时是可优化的。然而,你没有这种情况。因此,
两侧的表达式对于索引是无用的

INDEX(seasonid,status,month)
这3个字段的任何顺序都是该查询的“最佳”索引


另请参见我的。

使用季节ID作为索引使用Where中所有字段的综合索引。字段的顺序很重要。首先使用结果最小的字段,依此类推。在查询之前,您可以查看索引的使用与否以及解释。索引的有用性取决于其基数。关于(季节ID、状态、月份)的综合指数似乎是一个明显的竞争者,但包括一个或另一个团队列也可能有用。