MySQL数据库中的记录数

时间:2013-02-10 15:52:58

标签: mysql sql

嗯,这应该足以获得当前数据库中所有记录的数量:

SELECT SUM(TABLE_ROWS) FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = DATABASE();

令人惊讶的是,每次执行上述声明时,我都会得到不同的数字!首先我认为我的数据库存在问题。但是MySQL开发人员提供的示例数据库也是如此。

多次在sakila执行上述语句会产生以下值:

46362
48104
45170
47060
48139

我做错了什么?这是一个错误吗?

1 个答案:

答案 0 :(得分:6)

这是一个InnoDB的东西 - 你可以改为在桌面上计数(id),但它很慢。

因为它很慢,InnoDB会随机抽取行数,测量大小,然后除以总大小以确定大约有多少行。