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

哪个最快?从“表”中选择SQL_CALC_FOUND_ROWS,或选择COUNT(*)

拓拔松
2023-03-14
问题内容

当您限制通常用于分页的SQL查询返回的行数时,有两种方法可确定记录总数:

方法1

SQL_CALC_FOUND_ROWS选项包括在原始选项中SELECT,然后通过运行获取总行数SELECT FOUND_ROWS()

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();

方法二

正常运行查询,然后通过运行获取总行数 SELECT COUNT(*)

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;

哪种方法最好/最快?


问题答案:

这取决于。请参阅有关此主题的MySQL Performance
Blog帖子:http :
//www.mysqlperformanceblog.com/2007/08/28/to-sql_calc_found_rows-or-not-to-
sql_calc_found_rows/


简要介绍一下:Peter说,这取决于您的索引和其他因素。帖子中的许多评论似乎都说SQL_CALC_FOUND_ROWS几乎总是比运行两个查询要慢-
有时要慢10倍。



 类似资料:
  • 问题内容: 嘿,我在PostgreSql中有2个表: 和一些数据: 文件: 更新: 因此,所有更新都指向同一文档,但是所有更新的日期都不同。 我想做的是从文档表中进行选择,但还要包括基于日期的最新更新。 这样的查询应如何显示?这是我目前拥有的,但我列出的是所有更新,而不是我需要的最新更新: 包括; 我在查询中需要这个的原因是我想按更新模板中的日期排序! 编辑:此脚本已大大简化,因此我应该能够创建一

  • 问题内容: 我想根据URL字符串选择一些ID,但对于我的代码,它仅显示第一个。如果我写手册的ID是伟大的。 我有这样的网址http://www.mydomain.com/myfile.php?theurl=1,2,3,4,5(ids) 现在在myfile.php中,我有sql连接,并且: 如果我使用这个: 我得到正确的结果。现在,如果我使用下面的代码,它将无法正常工作: 有什么建议? 问题答案:

  • 问题内容: 我正在尝试从以下查询中获取行数。我只得到行计数为1,但有35条记录。您能否让我知道如何从内部查询中获取计数? 谢谢 问题答案: 您缺少FROM,需要为子查询指定别名。

  • 我的数据库中有两个表。一个表包含有关用户的信息,而另一个表包含有关预订的数据。当用户进行预订时,userid将被放置在预订表中。现在,我想展示一张用户的照片,其中包括预订的备注和日期,但是照片在users表中。 这是我的两张桌子: null null

  • 我有以下数据库模型: 在Spring数据规范中,当B.status为'X'时,我想返回A的实例。JPQL代码如下: 这些是模型类: Spring规范中的JPA标准是什么?

  • 我用<code>列表视图</code>创建了一个活动。这是一个朋友。 我想让它选择将其添加到另一个。 我不知道选择哪个<code>视图</code>最好<代码>循环视图或