java 面试题:数据库设计求各个年龄的人数,问怎么设计可方便查询出各个年龄的人数(统计用),数据百万以上估计不能使用函数,怎么设计查询比较快?

jya126 2016-04-07 08:47:58
面试题:数据库设计求各个年龄的人数,问怎么设计可方便查询出各个年龄的人数(统计用),数据百万以上估计不使用函数,不使用存储过程,不使用临时表;怎么设计查询比较快?基本字段,姓名,出生日期;(可随意增减字段)
...全文
491 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸣鸣Amadues 2016-04-08
  • 打赏
  • 举报
回复
数据库设计还是一张表,人的ID是主键,年龄是一个字段。 求各年龄的人数,可以先全选到程序里把记录都存到一个集合,然后遍历集合算出来。
  • 打赏
  • 举报
回复
引用 2 楼 scmod 的回复:
直接加个年龄字段...然后统计不还是要用到sum之类的函数吗.. group之后是不是也要用到函数的.....
我也纳闷呢,你统计数量不用sum啊
scmod 2016-04-07
  • 打赏
  • 举报
回复
直接加个年龄字段...然后统计不还是要用到sum之类的函数吗.. group之后是不是也要用到函数的.....
oh_Maxy 2016-04-07
  • 打赏
  • 举报
回复
数据量少用group 数据量多的话,可以考虑按年龄段分表。比如0~20岁一个分表,21~25一个分表,25~30一个分表,最后大于60一个分组。 分组可以根据年龄分布来分。
jya126 2016-04-07
  • 打赏
  • 举报
回复
引用 7 楼 ch1240249252 的回复:
加个索引还是可以的吧,然后不要都存在一个表里,分为多个子线程。能想到这只有这么多,你还不让一部分
我也想过了,面试官说还有其他更好的,我也没想出来
小溪a 2016-04-07
  • 打赏
  • 举报
回复
对业务下手,数据库里面存200条记录,两个字段一个年龄,一个人数,每次插入数据的时候修改对应的年龄次数,应该可以毫秒级
奄灬苟且偷生 2016-04-07
  • 打赏
  • 举报
回复
加个索引还是可以的吧,然后不要都存在一个表里,分为多个子线程。能想到这只有这么多,你还不让一部分
jya126 2016-04-07
  • 打赏
  • 举报
回复
引用 2 楼 scmod 的回复:
直接加个年龄字段...然后统计不还是要用到sum之类的函数吗.. group之后是不是也要用到函数的.....
聚合函数可以用啊,但得考虑性能,百万千万数据要秒查的
  • 打赏
  • 举报
回复
引用 4 楼 scmod 的回复:
[quote=引用 3 楼 shijing266 的回复:] [quote=引用 2 楼 scmod 的回复:] 直接加个年龄字段...然后统计不还是要用到sum之类的函数吗.. group之后是不是也要用到函数的.....
我也纳闷呢,你统计数量不用sum啊[/quote] 加个年龄字段然后一堆count然后union起来不知道行不行...有一种蛋蛋的忧桑[/quote] count不是函数啊?
scmod 2016-04-07
  • 打赏
  • 举报
回复
引用 3 楼 shijing266 的回复:
[quote=引用 2 楼 scmod 的回复:] 直接加个年龄字段...然后统计不还是要用到sum之类的函数吗.. group之后是不是也要用到函数的.....
我也纳闷呢,你统计数量不用sum啊[/quote] 加个年龄字段然后一堆count然后union起来不知道行不行...有一种蛋蛋的忧桑

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧