获取MySQL数据库中所有表的记录行数

上次写过一篇文章,获取mysql表中各个表的物理存储大小,有个这个可以及时发现业务中新增的大表,但是在某些场景中物理的size不大,记录行数很大,一般来说当一个表的数据量超过2千万行时,数据库的性能就会急剧的下降,此时就要采取相应的措施比如分表、分库、数据归档等。那么如何获取MySQL数据库中所有表的记录行数就很重要了。

为了获得MySQL表中所有记录的计数,我们可以将TABLE_ROWS与聚合函数SUM结合使用。语法如下。

mysql> SELECT SUM(TABLE_ROWS)
   ->FROM INFORMATION_SCHEMA.TABLES
   ->WHERE TABLE_SCHEMA = 'test';

应用上述语法以获取所有表的记录数。查询如下-

+-----------------+
| SUM(TABLE_ROWS) |
+-----------------+
|             450 |
+-----------------+
1 row in set (13.54 sec)

要显示每个表的所有记录的计数,请使用以下查询-

mysql> SELECT table_name, table_rows
   ->FROM INFORMATION_SCHEMA.TABLES
   ->WHERE TABLE_SCHEMA = 'test';

以下是输出:

+------------------------------------------------------------------+------------+
| TABLE_NAME                                                       | TABLE_ROWS |
+------------------------------------------------------------------+------------+
| add1daydemo                                                      |          2 |
| addcheckconstraintdemo                                           |          0 |
| addcolumntable                                                   |          0 |
| addconstraintdemo                                                |          2 |
| adding5hours                                                     |          2 |
seo关键词密度的定义
每日一句话科技资讯 | 20200701