对多个表中的行进行计数会导致较大的延迟

rain猫

我有3个主要包含字符串数据和唯一id列的表:

categories ~45 rows
clientfuncs ~800 rows
serverfuncs ~600 rows

所有表都有唯一的主AI列“ id”。我尝试在一个查询中计算行数:

SELECT COUNT(categories.id), COUNT(serverfuncs.id), COUNT(clientfuncs.id) FROM categories, serverfuncs, clientfuncs

大约需要1.5-1.7 s。

当我尝试

SELECT COUNT(categories.id), COUNT(serverfuncs.id) FROM categories, serverfuncs

或者

SELECT COUNT(categories.id), COUNT(clientfuncs.id) FROM categories, clientfuncs

或者

SELECT COUNT(clientfuncs.id), COUNT(serverfuncs.id) FROM clientfuncs, serverfuncs

,需要0.005-0.01 s。(应该是)

有人可以解释一下,这是什么原因?

牙齿

您正在进行45 * 800 * 600行的交叉联接,您会注意到在检查计数结果时:-)

尝试以下方法:

SELECT 
  (SELECT COUNT(*) FROM categories), 
  (SELECT COUNT(*) FROM serverfuncs), 
  (SELECT COUNT(*) FROM clientfuncs);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为多个ID中的每一个对多个表上的行进行计数

SQL Case When语句对多个表上的行进行计数

用多个匹配条件对excel中的行进行计数

如何对Excel表中的数据行进行计数

数据表仅对特定列中的行进行计数

QTextEdit将setLineWrapMode设置为NoWrap会导致较大的延迟

在Entity Framework中跨多个表进行选择会导致产生通用的IQueryable?

根据多个条件对行进行计数

在MySql中对行进行计数和分组

如何使用一个SQL查询对嵌套表中的行进行计数?

如何基于相同的日期范围对不同表中的行进行计数

根据日期对数据表中的前行进行计数

查询以对一张表中的行和更特定的行进行计数

按组对数据表中具有某些值的行进行计数

如何使用熊猫基于多个列条件对行进行计数?

如何在awk的多个范围内对行进行计数?

Excel VBA - 对多个表中的行进行所有修改的时间戳

对 R Markdown 表中的行进行分组

在多个表中查找值,然后对匹配表中的第一个空白行进行操作

在PHP中对行进行计数时得到错误的数字

使用C对ASCII文件中的行进行计数

使用索引对GROUP BY查询中的行进行计数

如何根据特定条件对SSIS中的行进行计数?

对r中的行进行分组,比较和计数

PL / pgSQL函数对表中的行进行计数

根据可选过滤条件在Excel中对行进行计数

SQL Oracle中按行进行条件条件项计数

如何仅在Excel中包含1的行进行计数

使用Selenium对WebTable中的隐藏行进行计数