Getting number of records in mysql inconsistency
I found out why from the MySQL Documentation:


  The number of rows. Some storage engines, such as MyISAM, store the
  exact count. For other storage engines, such as InnoDB, this value is
  an approximation, and may vary from the actual value by as much as 40%
  to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate
  count.
  
  The Rows value is NULL for INFORMATION_SCHEMA tables.
  
  For InnoDB tables, the row count is only a rough estimate used in SQL
  optimization. (This is also true if the InnoDB table is partitioned.)