SELECT COUNT(*)...& SELECT table_name,table_rows ...;给出不同的结果(行数),任何人都可以解释一下,为什么?

时间:2017-10-24 09:36:44

标签: mysql database

我正在将表从1个数据库(MySQL)转移到另一个数据库(MYSQL)。 为了检查表数据,我正在计算给定表中的行数,但是当我执行以下2个查询时,我得到相同表的不同行数。任何人都可以解释为什么会这样吗? (我也上传了查询结果的画面)

查询

1

SELECT COUNT(*) FROM test1; (giving result as 134) 

2

SELECT table_name,table_rows FROM information_schema.tables WHERE table_schema='career';(giving result as 171)**

enter image description here

1 个答案:

答案 0 :(得分:0)

这里没什么值得担心的。查找行数的正确方法是您的第一个查询:

Select count(*) from table;
即使整行为空,

Count(*)也会对所有行进行计数。但情况并非如此,因为几乎所有的表都有主键,而您刚刚在表中添加了一个。

Table_rows只会粗略估计表格中的行数,如果您不同时间运行该查询,这可能会有所不同。

有关详细信息,请Click here

希望它有所帮助!