KyleBlog.cn 文章 标签 关于
文章 标签 关于

MySQL快速查询超大表的行数

在使用InnoDB查询引擎时,通过select count(*) from table_xxx语句来查询MySQL表的行数效率不算很高,尤其是遇到超大表,速度尤其慢。

为什么查行数会慢

在使用MyISAM查询引擎时,MySQL会准确记录表的行数,在每次增减行数时,都及时更新该数据。但使用InnoDB查询引擎时,没有实时记录表的行数,遇到select count(*) from table_xxx这种查询,InnoDB实际会真地访问磁盘去统计表的行数,速度自然慢了。

快速查询行数

实际上,即使使用InnoDB,在MySQL的系统表里,也有记录各个表的行数,只是,这个数据不是实时更新的:

select TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES where TABLE_NAME='table_xxx';

在对行数的实时性要求不高时,上述SQL便可以代替select count(*) from table_xxx

本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/mysql_fast_count

发布日期:2022-08-21 联系作者