有一个带有~3g文件大小的innodb表(我使用innodb_file_per_table = 1),刚从dump和~1.3G转储文件导入。不知道这里有多少个recods。
当我从$ table执行“select count(id)”时,我看到“27117291”(27,117,291的可读性)。 当我从$ table limit 100执行“select count(id)”时,我也看到“27117291”
为什么会这样? InnoDB 真的更好MyISAM吗?!
P.S。如果我从$ table执行“select count(id),其中id = 73010460;”我看到“1”。
答案 0 :(得分:5)
select count(id) from $table
返回包含count的一行。因此,您的限制没有任何区别。
(的 Reference 强>)
+-----------+
| COUNT(id) |
+-----------+
| <count> |
+-----------+
答案 1 :(得分:4)
我不是SQL专家,但我的猜测是因为count()只返回1行,因此限制为100不执行任何操作。
我猜你需要做更多这样的事情来获得预期的结果: select count((从x limit 100中选择id))
答案 2 :(得分:3)
限制不适用于该查询。 count查询返回1行,你限制100行。 如果你的计数查询将返回超过100行,那么它将是有效的。
该查询的限制不限制计数,过滤返回行