原创

百亿级的mysql表如何快速获取表的行数

前言

很多时候我们需要统计当前表的总行数用于分析当前业务增长趋势。标准的sql统计语法是 select count(*) from table。但当表的行数超过亿级别,这个只能是一个理论的做法,实际上只能无尽的等待了。难道我们就此束手无策了吗

1、可行的办法

方法其实很简单。就是利用explain 执行计划来间接得到我们想要的效果。

过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。

mysql> explain select * from user;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | actor | ALL  | NULL          | NULL | NULL    | NULL |    99999999 | NULL  |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+

如图所示从rows的表格中就能得到想要的结果,是不是很惊喜。

正文到此结束
本文目录