现有一个业务系统有4万用户,所有用户每天产生6千万数据,系统要求快速查询60天数据,请给出你的实现方案

dongfight 2018-05-19 03:11:12
现有一个业务系统有4万用户,所有用户每天产生6千万数据,系统要求快速查询60天数据,请给出你的实现方案
...全文
1327 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
删库到跑路 2018-06-08
  • 打赏
  • 举报
回复
绝对要分区
薛定谔的DBA 2018-06-08
  • 打赏
  • 举报
回复
业务是什么?是业务数据还是日志数据?数据保留多久?是一张表还是所有业务表增长都差不多? DB系统是sql server ? 分库分表是必须的。按业务或是用户进行分表,直连所在数据库表; 另一种自作路由表,先查路由表再查询指定对应的表; 对于数据统计,可以每天、每周、每月进行一次统计,将结果保持下来。查询60天的数据则从这些结果中查询。
hgwyl 2018-06-07
  • 打赏
  • 举报
回复
可以的话,各个查询块,单独物理出来吧。
  • 打赏
  • 举报
回复
60天的汇总结果,可以每天做好日汇总表 60天后 直接使用日汇总表 进行进一步汇总
吉普赛的歌 2018-05-19
  • 打赏
  • 举报
回复
用 Hbase 之类易于扩展的方案, 单数据库服务器已经没办法招架。分区也不顶事, 这么大数据量撑不住。 或者, 用多服务器,比如10个服务器,每个服务器分别查询 6 天的内容, 综合后反馈。 但最好的办法, 还是从业务上来解决。 4万用户, 平均每人每天要产生 1500 条数据,60天就 36亿,这个量不小了, 数据量过大的, 一般谈不上太重要, 最好能根据需要, 每天凌晨分析、筛选出结果表。 结果表就不会有太大了, 最终用户查的时候, 数据库压力也没那么大。 不需要老是想数据库的问题, 数据量大到一定程度可优化的可能性就大大降低, 尽量化繁为简。
卖水果的net 2018-05-19
  • 打赏
  • 举报
回复
第一反应,就是分区。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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