当前位置: 首页 > 面试题库 >

当您知道只有1个结果时,是否在MySQL查询中添加“ LIMIT 1”会使它们更快?

程赞
2023-03-14
问题内容

当我将LIMIT 1添加到MySQL查询中时,它会在找到1个结果(从而使其速度更快)之后停止搜索,还是仍然获取所有结果并在最后截断?


问题答案:

根据查询,添加limit子句会对性能产生巨大影响。如果您只需要一行(或者知道只有一行可以满足查询的事实),并且不确定内部优化器将如何执行它(例如,WHERE子句未命中索引等等),那么您绝对应该添加LIMIT子句。

至于优化的查询(在小型表上使用索引),性能可能无关紧要,但还是要重申一下-如果您只对一行感兴趣,那么无论如何都不要添加LIMIT子句。



 类似资料:
  • 是否可以实现一个一旦有答案就停止处理流的收集器? 例如,如果收集器正在计算平均值,其中一个值是NaN,我知道答案是NaN而没有看到更多的值,因此进一步的计算是没有意义的。

  • 问题内容: 我正在使用Firestore 分页适配器从Firestore中填充数据,如果Firestore中的集合为空,我想向用户显示一个通知,如果不是,那么我想填充数据,但是我不填充看到使用Firestore分页适配器执行此操作的方法,因为我无法从创建适配器的片段内部访问数据 WallFeedRVAdapter是我在其中填充已加载数据的适配器。我如何从托管的当前片段中了解myFeedQuery是

  • 我正在使用firestore分页适配器用firestore中的数据填充我的,如果firestore中的collection是空的,我希望显示来通知用户,如果不是空的,我希望用数据填充,但我没有找到使用firestore分页适配器的方法,因为我不能从我在中创建适配器的片段中访问数据,因为我在中创建适配器的片段中 WallFeedRVAdapter是适配器,我在这里用加载的数据填充。如何从承载的当前片

  • 我希望测试类知道它们当前是否在套件中执行。我有一个测试套件,它使用外部资源(ExternalResource)在所有测试之前启动服务器,在所有测试之后关闭服务器。效果完美。在编写新测试时,我希望运行一个测试(或全部来自同一个测试类)来启动和停止服务器。所以我想让这些类知道它们当前是否在套件中执行,并相应地启动服务器。这似乎是不可能的。套件描述似乎永远不会传递给规则或类规则。我也无法获得运行当前测试

  • 问题内容: 如果行达到一定数量,我想压缩结果。 然后,客户端程序将解压缩结果和过程。 这是具有客户端/服务器体系结构的桌面,某些客户端通过vpn连接。 客户端连接后,它将向服务器发送数据。服务器完成处理后,客户端将从服务器下载更新的数据。 客户位于几个城镇,平均50-100公里。离开。他们将使用vpn通过Internet连接。但这是使用vpn或其他方式实施的最初计划,但尚未实施。 问题答案: 有一

  • 我有来自sql的两个计数查询。我想把这两个查询的结果分开。我试过: 但它告诉我,它有一个致命的错误。 $con=mysqli_connect(“localhost”、“root”、“xoxo”)或die(mysqli_connect_error()); 但它告诉我这是一个零除。然而,我的第1行和第2行对它都有价值。