查找mysql数据库中存在的记录数

时间:2012-10-09 08:03:51

标签: mysql records

如何查找特定数据库中存在的记录数? 例如,我有3个数据库,即 a,b,c ,现在我想计算 a 数据库中存在的记录总数。

3 个答案:

答案 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';