Con*_*ers 9 mysql sql database innodb
我目前正在使用该脚本
SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'Tables';
Run Code Online (Sandbox Code Playgroud)
然而,它并不准确,因为我的MySQL表使用的引擎是InnoDB(我只是意识到这可能是一个问题,这些数据库已经存在了一段时间).
有没有办法用MySQL获取数据库每个表中每一行的精确计数?
干杯.
jkr*_*cma 11
我认为唯一准确(和较慢)的方法是为每一个表做:
SELECT COUNT(*) FROM Table
Run Code Online (Sandbox Code Playgroud)
小智 5
此SQL语句将生成一个联合查询,该查询可以在一个步骤中完成任务:
SELECT CONCAT('SELECT \'', table_name ,'\' as tbl, (SELECT COUNT(*) FROM ', table_name, ') AS ct UNION')
FROM information_schema.tables
WHERE table_schema = 'your_database';
Run Code Online (Sandbox Code Playgroud)
运行SQL语句后,只需将输出粘贴到文本编辑器中,从输出的末尾删除单词"UNION",即可进行联合查询.
请注意,运行联合查询可能会占用大量资源,具体取决于您的数据库大小,负载和硬件,因此您可能不希望一次性运行它.
| 归档时间: |
|
| 查看次数: |
20960 次 |
| 最近记录: |