如果表只有一个匹配结果,是否会将查询限制为一条结果记录,从而提高大型(ish)MySQL 表的性能?
例如
select * from people where name = "Re0sless" limit 1
如果只有一个具有该名称的记录?如果 name
是主键/设置为唯一怎么办?是否值得更新查询或者 yield 会很小?
最佳答案
如果列有
唯一索引:不,没有更快
非唯一索引:可能,因为它会阻止发送超出第一个匹配的任何其他行(如果存在)
无索引:有时
- 如果有 1 行或更多行与查询匹配,是,因为在匹配第一行后将停止全表扫描。
- 如果没有行匹配查询,否,因为它需要完成全表扫描
关于sql - 将查询限制为一条记录会提高性能吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34488/