正在做的一个后台系统,其中有个功能是这样的:
- 背景:每个用户都有一个几万行数据的表格(存储在mongo中)
- 需要从一个大的表格(几万行)中筛选出所需的数据(每一列都可筛选)
- 按列筛选后,还可按复选框选择数据,根据所选数据生成一个分析任务。
- 任务结果页面需要显示出所选的数据,也可以进行进一步筛选/复选/分析
主要问题出现在存储所选数据方面,目前的方案是后端根据前端的一些筛选条件找到所选的数据,把每一行的数据ID存储在mysql中,大致(data_id, task_id), 然后进行后续操作。
这就导致一个问题,存储的这些ID的表越来越大,随着用户越来越多,任务越来越多,这个数据量将会变的巨大。
请问如何优化这种情况,直接存储筛选条件是否可行?
抽象下大概是下面的功能:
将一个几万条数据池分成若干个数据集,用户可以自由创建数据集合。如何存储数据集和数据的对应关系?