百亿级的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的表格中就能得到想要的结果,是不是很惊喜。
正文到此结束