MySql-使用索引与普通选择的区别

MySql-使用索引与普通选择的区别,mysql,sql,Mysql,Sql,例如,我有一个Employee表。它有列Id、名称、地址、年龄。 我有两种索引 IndexName:IdOnly,字段:Id IndexName:IdAndName,字段:Id,名称 我的第一个查询是普通选择 从Id=1的员工中选择* 第二个我称之为索引名 从Id=1的员工使用索引(IdOnly)中选择* 这两者的区别是什么?有时差吗 这两者的区别是什么 在第二个示例中,您暗示mysql使用idOnly索引(它仍然可能忽略它) 有时差吗 一般情况下,第二个查询很可能更差(在性能方面;在可维护

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

  • IndexName:IdOnly,字段:Id
  • IndexName:IdAndName,字段:Id,名称
我的第一个查询是普通选择

从Id=1的员工中选择*

第二个我称之为索引名

从Id=1的员工使用索引(IdOnly)中选择*

这两者的区别是什么?有时差吗

这两者的区别是什么

在第二个示例中,您暗示
mysql
使用
idOnly
索引(它仍然可能忽略它)

有时差吗

一般情况下,第二个查询很可能更差(在性能方面;在可维护性方面也肯定更差),因为优化器通常比您(更)聪明

因此,经验法则是“更新”使用
使用INDEX
。当你知道你可能会违反这条规则时,你可能会违反这条规则