MySql - 使用索引与正常选择的差异

时间:2014-11-13 06:33:33

标签: mysql sql

例如我有Employee表。它有列ID,名称,地址,年龄。 我有两种索引。

  • IndexName:IdOnly,Fields:Id
  • IndexName:IdAndName,字段:Id,名称

我的第一个查询是正常选择

  

从员工中选择*,其中Id = 1

和第二个我称之为索引名称

  

从员工使用INDEX(IdOnly)中选择*,其中Id = 1

这两个有什么区别?有查询时间差吗?

1 个答案:

答案 0 :(得分:1)

  

这两者有什么区别?

在第二个中你暗示mysql使用idOnly索引(它仍然可以忽略它)

  

有查询时间差吗?

在一般情况下,第二个查询最有可能更糟糕(就性能而言;并且在可维护性方面肯定更差),因为通常优化器(比)更聪明。

所以经验法则是“更新”使用USE INDEX。当您知道可能违反此规则时,您可能违反此规则。