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

标签 mysql sql

例如我有员工表。它有列 ID、姓名、地址、年龄。 我有两种索引。

  • 索引名称:IdOnly,字段:Id
  • 索引名称:IdAndName,字段:Id、名称

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

Select * from employee where Id=1

第二个我称之为索引名称

Select * from employee use INDEX(IdOnly) where Id=1

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

最佳答案

what is the difference of these two?

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

Is there query time difference?

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

因此,经验法则是“更新”使用USE INDEX。当您知道自己可能违反此规则时,您可能会违反该规则。

关于MySql - 使用索引与普通选择的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26902719/

相关文章:

php - 我的mysql表结构应该如何?

php - 在 SQL 语句中使用 '

sql - MySQL 查询 - 排序问题

mysql - 如何在字符之间选择字符串?

mysql - 连接年和周函数

php - MySQL 表结构

sql - 将带有反斜杠引号的 PostgreSQL 转储恢复到现代 PostgreSQL (9.3)

sql - 查找表的数据库位置

sql - Activerecord 查询未返回所有结果

python - 如何并行对 pandas 数据帧执行多个 SQL 查询