如何查找特定数据库中存在的记录数?例如,我有 3 个数据库,即a、b、c ,现在我想计算数据库中存在的记录总数。
问问题
1321 次
3 回答
2
您可以从 information_schema 中提取它:
SELECT SUM(TABLE_ROWS) from information_schema.TABLES where TABLE_SCHEMA ='a';
于 2012-10-09T08:08:47.270 回答
1
MyISAM 具有准确的行数,因为它总是在写操作完成时锁定表——这意味着它可以准确跟踪行数(每个 MyISAM 表都有一个行计数器)。
InnoDB 不能像 MyISAM 那样做,因为它允许行级锁定,这意味着可能会删除一些行并且不保留中央准确计数器。information_schema
计数器是对表中行数的估计。
准确计算表中 InnoDB 行数的唯一方法是COUNT(*)
在需要进行全表扫描的表上使用。
你可以做:
SELECT SUM(
SELECT COUNT(*) FROM my_innodb_table
UNION
SELECT COUNT(*) FROM my_other_innodb_table
UNION
SELECT COUNT(*) FROM my_yet_another_innodb_table
);
于 2012-10-09T08:17:25.770 回答
0
存储在 information_schema 数据库中的所有数据库信息。所以你可以探索这个数据库。
use information_schema;
select sum(table_rows) from tables where table_schema = 'db_name';
于 2012-10-09T08:15:37.563 回答