当我将LIMIT 1添加到MySQL查询时,它是否在找到1个结果后停止搜索(从而使其更快)或者它仍然获取所有结果并在结束时截断?
根据查询,添加限制子句会对性能产生巨大影响.如果你只想要一行(或者知道只有一行可以满足查询的事实),并且不确定内部优化器将如何执行它(例如,WHERE子句没有命中索引等等),那么你一定要添加一个LIMIT子句.
对于优化查询(使用小表上的索引),它可能在性能上没有太大影响,但是再次 - 如果您只对一行感兴趣而不是添加LIMIT子句.
限制可以影响查询的性能(请参阅注释和下面的链接),它还会减少MySQL输出的结果集.对于您期望单个结果的查询,可以获益.
此外,限制结果集实际上可以加快总查询时间,因为传输大型结果集会使用内存并可能在磁盘上创建临时表.我提到这一点,因为我最近看到一个应用程序由于巨大的结果集而没有使用限制终止服务器,并且限制资源利用率大幅下降.
查看此页面了解更多细节:MySQL文档:LIMIT优化
如果只有1个结果回来,那么不,LIMIT不会让它更快.如果有很多结果,并且您只需要第一个结果,并且没有GROUP或ORDER by语句,则LIMIT将使其更快.