MySQL中近似统计全表数量的办法

CMS系统里往往需要分页,分页就需要获取全表有多少条记录,当表不大的情况下,这非常简单:

select count(*) from user;

但是如果表非常大,记录非常多时,就会非常慢,比如上千万条记录时,MySQL执行count操作是奇慢无比。而这种情况下,往往我们又并不需要非常准确的数值,毕竟记录条数随时都在增涨的,这个时候如果我们有一个整数类型的自增主键ID,我们就可以非常快速的估算记录条数了:

select max(id) - min(id) + 1 as total from user;

为了兼容表为空的情况,可以实现的更健壮一些,即没有记录时返回0:

select IFNULL(max(id) - min(id) + 1, 0) as total from user;

 

发表于 2023年03月22日 00:33   评论:0   阅读:668  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo