我有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] 删除。
我来说两句