什么更快,计算表格中的元素数量或获取最后一条记录?
我们在这里谈论MySql。
答案 0 :(得分:7)
如果表是ISAM,则行计数被缓存,应立即返回。
如果表是InnoDB,它可能会慢一些。
有关详细信息,请参阅此评论:
http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/comment-page-1/#comment-106645
答案 1 :(得分:4)
我不知道这两个动作真的完成了同样的事情。你想做什么?
您是否尝试确定表中有多少条记录?如果是这样,简单地获取最后一条记录(并且,我假设,使用它的ID号作为记录数)将不准确。如果您已插入10行,然后删除第3行和第7行,则最高ID为10,但您只有8条记录。
出于同样的原因,计算记录不会给你最高的身份证号码,因为在很多情况下记录的记录数量会比最高身份证号码所显示的数量少。
另外,就速度而言,我很确定大多数计算行的方法和大多数确定最后一行的方法都会以类似的方式使用表/索引,所以我不认为会有巨大的速度差异。
答案 2 :(得分:0)
在这里疯狂猜测,但如果你的表被正确编入索引,那么获取任何元素的速度都非常快。我认为获得最后一个元素的速度更快,甚至可以指望MySQL在您要求记录计数时实际计算所有记录。
答案 3 :(得分:0)
为什么不使用
Select count(*) FROM ...
这可能是最快的方式,因为数据库可以快速完成,并且返回的数据量非常小。