如何查找特定数据库中存在的记录数? 例如,我有3个数据库,即 a,b,c ,现在我想计算 a 数据库中存在的记录总数。
答案 0 :(得分:2)
你可以从information_schema中提取这个:
SELECT SUM(TABLE_ROWS) from information_schema.TABLES where TABLE_SCHEMA ='a';
答案 1 :(得分: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
);
答案 2 :(得分:0)
存储在information_schema数据库中的所有数据库信息。所以你可以探索这个数据库。
use information_schema;
select sum(table_rows) from tables where table_schema = 'db_name';