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

在MySQL中仅检索固定数量的行

岳君之
2023-03-14
问题内容

我正在负载下测试数据库设计,我只需要检索固定数量的行(5000)

我可以指定一个LIMIT来实现这一点,但是查询似乎会构建所有匹配行的结果集,然后仅返回该限制中指定的行数。那是怎么实现的?

MySQL是否有读取一行,读取另一行并在检索到第5000个匹配行时基本停止的功能?


问题答案:

MySQL很聪明,如果您LIMIT 5000在查询中指定a ,并且有可能在不先生成整个结果集的情况下生成该结果,则它将不会生成整个结果。

例如,以下查询:

SELECT * FROM table ORDER BY column LIMIT 5000

table除非有索引column,否则此查询将需要扫描整个对象,在这种情况下,它会很聪明,并使用索引来查找最小的行column



 类似资料:
  • 我目前正在重构一个用Symfony 3编写的应用程序,并且严重依赖ORM,我一直在尝试获取一个包含所选列索引的对象/数组。 现在我对PHP PDO相当熟悉,我记得查询结果的基本获取如下所示 (根据我的查询)它会给我一个类似于下面的数组 在理论方面,我尝试使用几个具有水合参数的内置函数 运气不好,我最后得到了这样的东西 有人能帮我或者给我指出正确的方向吗?如何正确地解决这个问题? ----更新了问题

  • 波乔即是。java表示排行榜中的一个条目。Position是排行榜中的位置,1是得分最高的用户 . 我不知道该用什么谓词来返回5个条目,包括正在搜索的条目。另一个方面是性能,因为排行榜可以有几十万个条目。 *********编辑-1*********** 使用parallelStream()会导致问题吗? 列表条目=LeaderBoardUserEntryMap.EntrySet().Parall

  • 问题内容: 有谁知道从HttpServletRequest对象仅获取POST参数的方法吗? IE,PHP具有$ _POST超全局变量,并且Perl的CGI.pm仅在HTTP方法为POST(默认情况下)时才检索POST参数。 HttpServletRequest.getParameter(String)将包括 得到 URL参数,即使HTTP方法是POST。 问题答案: 我猜一种方法可能是手动解析并检

  • 问题内容: 我在其他帖子上也看到了类似问题的解决方案,但是在将其应用于我的特定问题时遇到了问题。 这是我最初的加入: 结果是: 但是对于每个service_note_task,我实际上只需要一行代表具有最高comment_id的注释,如下所示: 我认为我可以在子选择语句中使用MAX来缩小结果的范围。如何将其合并到语句中以获得这些结果? 问题答案: 作为参考,这被称为“ groupwise-maxi

  • 问题内容: 这个问题已经在这里有了答案 : 使用Oracle分页 (6个答案) 6年前关闭。 请帮助我在Oracle数据库中编写一个SQL查询。有一个名为tbl的表,它有12行。我想先选择前4行,然后选择下4行和后4行。 任何人都可以告诉我如何在Informix中执行此操作。 问题答案: 您可以使用: 如果您正在使用子句,请使用(documentation)

  • 问题内容: 我有包含1600万条记录的MySql表,由于某些迁移工作,我正在读取整个Mysql表。 以下代码用于在MySql中流式传输大型ResultSet 但这一次一次流式传输一个结果,这是否意味着我们在每一行都命中了MySql服务器 在使用流式传输时,我们可以设置以下语句吗?setFetchSize(1000); 我想减少流式传输大型ResultSet时往返服务器的次数 问题答案: 我将假定您