MySQL 千万级 分组怎么优化

表中有 id、姓名、生日三个字段,数据千万级的。需要查询每个年龄有多少人。整个查询不能超过1秒。请问哪位可以回答下

如果是oracle,就直接在年龄上面建立位图索引。
Mysql的话,因为id是不重复的,你可以在id上面建唯一索引
查询的使用使用count(),因为你在id建立了唯一索引,所以count()就会根据age分组,然后使用id来统计,这样就会快很多

如下:

select count(*)  from t_user group by age

建议写个定时任务,每天凌晨执行一次统计,将结果插入到一张汇总表,然后其他程序就查这张汇总表。
这样既保证了数据准确,又保证了查询效率,而且还节省了数据库的开销。
年龄这玩意,用你的算法,1天之内是不会发生变化的吧