一尘不染

将查询限制为一条记录是否可以提高性能

mysql

如果一个查询只有一个结果记录,将查询限制在一个结果记录中,会提高性能吗?

例如

 select * from people where name = "Re0sless" limit 1

如果只有一个记录具有该名称?如果name主键/设置为唯一,那该怎么办?值得更新查询还是收益最小?


阅读 244

收藏
2020-05-17

共1个答案

一尘不染

如果列有

唯一索引:不, 没有更快

非唯一索引:可能是 因为它会阻止发送除第一个匹配项之外的任何其他行(如果存在)

无索引:有时

  • 如果有1个或更多行与查询匹配,则为 yes ,因为在匹配第一行后将停止全表扫描。
  • 如果没有相匹配的行查询, 没有 ,因为它需要完成全表扫描
2020-05-17