我想知道我的数据库中每个表有多少行。到目前为止,我已经做到了
select count(*) _tablename_;
不过我需要对每一个表格都这么做,而且表格数量很多。有没有什么最好的方法可以获得包含表格名称和其行数的打印输出?
SELECT table_name, table_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<your db>';
我也希望你意识到查询中存在错误:它缺少了一个FROM
。
SELECT table_name, table_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '<your db>';
TABLE_ROWS:分区中的表行数。对于分区的InnoDB表,TABLE_ROWS列中给出的行计数仅是SQL优化中使用的估计值,可能不总是精确的...
更多信息请参考https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.5/en/partitions-table.html。
ANALYZE TABLE table_name
。参见:https://dba.stackexchange.com/a/297831/236769 - Adam Marsh