背景,mysql 一个表,innodb,数据3千万+,配合索引查询数据的速度还可以
--------------------------------------------------------------------------------
问题:在管理端页面,做分页查询时,需要先取总数据量,然后计算总页数。取总数据量时 select count(*) from table_name,耗时在15s,有没有办法优化到0.5s以内。如果不行的话,就考虑不做计算总页数了,只做上一页和下一页。

解决方案 »

  1.   

    3千万的数据不会全部要看吧,分页是必须得,至于这个总数看你怎么搞了,coun慢你可以放到session里,或者程序初始化中,或者建个存储过程,反正不要让用户去count这个数;
    分页一定要把最新的数据排在第一页
      

  2.   

    对该表的最短字段,做个索引,然后count该字段试试
      

  3.   

    count(主键)
      

  4.   

    use information_schema;select table_name,table_rows from tables 
    where TABLE_SCHEMA = 'testdb' 
    order by table_rows desc; 这是个估计数,并不保证完全准确。