求一个sql语句(千万级别)

几千万级别的表A:如下


Table A

| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+-------------------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment | 
| insert_time | timestamp | NO | | CURRENT_TIMESTAMP |  
×××

我想查询至2010-6-1日开始,每天插入多少条数据。

要怎么查快?

作者: miraclestar   发布时间: 2011-05-30

select date(insert_time),count(*) from tt where date(insert_time)>'2010-6-1' group by date(insert_time)

在insert_time建立索引试试

作者: wwwwb   发布时间: 2011-05-30

不能建立索引。线上的库。

作者: miraclestar   发布时间: 2011-05-30

哦,不清楚

作者: wangqi618572   发布时间: 2011-05-30

如果 insert_time 表上没有索引的话,则只能是全表扫描。 没有任何办法来直接提高效率。

或者可以考虑另外创建一个统计表

(insert_day, cnt) 来存放每天的统计结果。然后每天半夜来更新这个表中的统计结果。

作者: ACMAIN_CHM   发布时间: 2011-05-30

不能建索引得话会全表扫描

另外可以导出该表到别得机器上执行那么慢得操作

作者: rucypli   发布时间: 2011-05-30