在上周的在 MySQL 中获取高级的行计数(第 2 部分)文章中,我们使用了原生的 COUNT() 函数来计算唯一值以及满足条件的值。在今天的最后一部分中,我们将学习如何从数据库或整个模式中的所有表中获取行计数。
查询 information_schema 数据库
你不必对每个表运行计数查询以获取行数。如果你计划多次运行它,这将是繁琐的并且可能需要外部脚本。
INFORMATION_SCHEMA 数据库是每个 MySQL 实例存储有关 MySQL 服务器维护的所有其他数据库的信息的位置。它有时也称为数据字典和系统目录,是查找有关数据库、表、列的数据类型或访问权限的信息的理想位置。
INFORMATION_SCHEMA“TABLES”表提供有关数据库中还有哪些其他表的信息。通过查询“TABLES”表,你可以使用单个查询获得精确的行计数。
一个数据库的表计数
获取一个数据库的行计数很容易。只需添加一个 WHERE 子句,其条件是 table_schema 列与你的数据库名匹配:
SELECT
TABLE_NAME,
TABLE_ROWS
FROM
`information_schema`.`tables`
WHERE
`table_schema` = 'YOUR_DB_NAME';
+------------+------------+