求一个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日开始,每天插入多少条数据。
要怎么查快?
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建立索引试试
在insert_time建立索引试试
作者: wwwwb 发布时间: 2011-05-30
不能建立索引。线上的库。
作者: miraclestar 发布时间: 2011-05-30
哦,不清楚
作者: wangqi618572 发布时间: 2011-05-30
如果 insert_time 表上没有索引的话,则只能是全表扫描。 没有任何办法来直接提高效率。
或者可以考虑另外创建一个统计表
(insert_day, cnt) 来存放每天的统计结果。然后每天半夜来更新这个表中的统计结果。
或者可以考虑另外创建一个统计表
(insert_day, cnt) 来存放每天的统计结果。然后每天半夜来更新这个表中的统计结果。
作者: ACMAIN_CHM 发布时间: 2011-05-30
不能建索引得话会全表扫描
另外可以导出该表到别得机器上执行那么慢得操作
另外可以导出该表到别得机器上执行那么慢得操作
作者: rucypli 发布时间: 2011-05-30