mysql select查询的where子句顺序的更改是否会提高性能?

时间:2014-07-22 15:47:35

标签: php mysql performance

如果where子句标准的顺序发生变化,是否有任何性能优势?

我的意思是,例如。

我有一个选择查询,

SELECT * from mytable WHERE enabled = '1' AND type = 'pictures' AND category = 'family' 

现在在上面的查询

    首先启用
  1. ,在我的表中启用了95%的行。
  2. 类型排在第二位,其中我的表包含75%的行 打字图片
  3. 类别是最后一个我的表包含20%行的类别 属于家庭类别。
  4. 所以我的问题是 如果我按照这个

    订购where子句,我会看到任何性能优势吗?
    SELECT * from mytable WHERE category = 'family' AND type = 'pictures' AND enabled = '1'
    

    由于 使用:MYISAM作为表引擎。 并且where子句中的所有列都有索引。

1 个答案:

答案 0 :(得分:2)

Nah,优化器足够聪明,可以在这个简单的SELECT中使用最佳索引..在每个上使用EXPLAIN来仔细检查你是否喜欢(它们应该是相同的)。< / p>

如果在所有三列上添加一个INDEX,可能会获得更好的性能。