在网上看到很多资料无一例外的都提到了在mysql中表类型为innodb的情况下,用select count(*)查询出来的记录总数会不准确,请问真的是这样吗?
还有据说select count(*) from talbe这样直接统计记录总数会很慢,那改成select count(*) from talbe where id>0的话是不是就和myisam表的统计数据一样了?id字段为唯一的自增值主键。

解决方案 »

  1.   

    id字段为唯一的自增值主键
    select count(id) from tt
    速度应该比较快
      

  2.   

    在网上看到很多资料无一例外的都提到了在mysql中表类型为innodb的情况下,用select count(*)查询出来的记录总数会不准确,请问真的是这样吗?老版本在大数据容量下有这个问题。新的5.1好象没有再听说过了。
      

  3.   

    count()集合函数最好用在索引列上,这样数据库只需要到索引文件中去进行计算就可以了,
    速度是很快的,如果你用count(*),数据库必须到数据文件中去统计记录数,这样的统计是很费时间的。
    如果有了索引文件,对索引文件的统计是很极速的。