小白菜S 2022-03-04 14:27 采纳率: 66.7%
浏览 43

MySQL 千万级 分组怎么优化

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

  • 写回答

2条回答 默认 最新

  • 嗷呜的善泽融 2022-03-04 15:22
    关注

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

    如下:

    select count(*)  from t_user group by age
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 3月4日
  • 创建了问题 3月4日