mysql复合索引是否会使其他索引完全冗余?

Bri*_*con 5 mysql indexing composite-index

如果我在(a,b)上有一个复合索引,我理解只关注'a'的查询仍将使用复合索引(但不是与'b'有关的查询)

我的问题是,如果我有(a,b)索引,是否有任何正当理由在'a'上设置单列索引?我所读过的关于(a,b)索引是否完全替代a或者仅仅是"总比没有"的索引似乎含糊不清.

这假设我通过a和a,b进行过滤.我有一个表太多索引的表,这会损害写入性能,并希望在删除索引之前仔细检查,我只是相当肯定没有做任何好事.

此外,这个答案会根据我使用InnoDb还是MyISAM而改变?有关的表格是MyISAM,但我们的大部分表格都是InnoDb.

小智 2

我的问题是,如果我有 (a, b) 索引,是否有任何正当理由在 'a' 上建立单列索引?

不,如果您在 (a,b) 上有索引,则没有理由在 (a) 上有索引