Mysql选择最后一个ID vs COUNT(*)

时间:2014-01-21 03:44:05

标签: mysql

SELECT id FROM store ORDER BY id DESC LIMIT 1
SELECT COUNT(*) FROM store

我有一张桌子,ID是自动增量。 我尝试计算行数,因为我的id是从1自动递增,所以最后一个id将是行的相同值

我想知道哪个查询可以有更好的性能 SELECT last id或使用COUNT

3 个答案:

答案 0 :(得分:4)

第一个可能表现更好。

第二个是准确的,你应该使用它。 id不保证没有漏洞。如果你有删除,肯定会有空白。

假设id是主键,可以使用索引来满足两者,这应该比读取整个表更快。

答案 1 :(得分:0)

如果您正在使用MyISAM,请务必使用COUNT!无论如何,该值都存储在每个表中,因此它甚至不需要引用表内容。但它与InnoDB不同。它必须实际计算行数。但我仍然会使用COUNT。 InnoDB虽然不常见......

答案 2 :(得分:0)

我会选择count(*),因为它已在MySQL中进行了优化,并保证了正确的答案。您始终可以删除行,因此依赖上一个id不是一个好主意。