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;