有一个系统 用户数预估约30万左右
系统要存储用户录入的数据,并根据这些数据生成各种报表。
每个用户涉及到的数据表大致有5张左右,第一个是固定的,只存储用户的设置信息,第二个是用户录入的基础信息,第三个是记录用户的操作,第四个是存储用户的管理报表(管理报表不是动态生成的),第五个是存储用户需要上报的报表,这个也不是动态生成的,系统资源有限,只能是生成完后储存起来,数据有变化时再重新生成,原因是用户查询本人报表也是很频繁的,开销太大。
用户数据量无法估计,有可能某个用户只有不到10条 也有可能某个用户要录入几千上万条
这种情况使用MYSQL的话应该怎么做呢?全部用户的数据放到一个表?还是按照用户分表?或是按照用户分库?
系统要存储用户录入的数据,并根据这些数据生成各种报表。
每个用户涉及到的数据表大致有5张左右,第一个是固定的,只存储用户的设置信息,第二个是用户录入的基础信息,第三个是记录用户的操作,第四个是存储用户的管理报表(管理报表不是动态生成的),第五个是存储用户需要上报的报表,这个也不是动态生成的,系统资源有限,只能是生成完后储存起来,数据有变化时再重新生成,原因是用户查询本人报表也是很频繁的,开销太大。
用户数据量无法估计,有可能某个用户只有不到10条 也有可能某个用户要录入几千上万条
这种情况使用MYSQL的话应该怎么做呢?全部用户的数据放到一个表?还是按照用户分表?或是按照用户分库?
解决方案
20
每个用户上千条也就三千万条 数据量并不是无限制的大 可以先做功能 后期再升级机器硬件最简单
20
这个需要你有一定的估算,就是30万的用户,平均下来,每个人1年会有多少条数据,假如1年会有1亿条数据,那么倒是可以考虑按照用户分表,例如可以分成10个表,通过用户的id%10+1 就是从1-10之间的数字,分别把不同的用户信息存储到这10个表中