0

下面是示例查询,如何使用 or 子句添加索引?

select fild1,fld2
  from tablename 
 where (field3='XXXX' or field4='YYYY') and field6='xdffgfd';

下面的索引会起作用吗?

ALTER TABLE tablename ADD INDEX ind_name(field3,field4,field6);
4

1 回答 1

2

不,这不是一个好的索引策略。您建议的复合索引适用于field3查找,但不适用于field4查找。

为此,您将需要一个单独的索引field4。如果(field4, field6)除了索引之外还提供复合索引,(field3,field6)您将优化OR子句的两个部分以进行查找,但您会在插入和更新方面产生开销。

于 2012-09-12T17:23:18.210 回答