业务需求:
客服每天都会审核用户上传的学校名称,每天的审核结果需要应用到已有数据上
******************************************************************************************************************
“全量策略”操作思路:
1.将审核结果提取出来,对user_info(100*100)进行update操作,对于每张表来说,需要全量数据更新
2.将审核结果置位,表明操作已完成
“全量策略”导致的数据操作量:
1.当前累积有2万条学校数据需要处理;(读)
2.当前有1150万用户数据需要扫描;(写)
3.全量扫描需要处理2300亿次;
全量策略结果:
1.即使是并行10个进城执行,仍然一晚上跑不完数据
-----------------------------------------------------------------------------------------------------------------------------------------------
“有效目标集”操作思路:
1.并不对数据全量更新,先全亮扫描,然后缩小包围圈,只对需要更新的记录进行更新
“有效目标集”导致的数据操作量:
1.当前累积有2万条学校数据需要处理;(读)
2.当前有1150万用户数据需要扫描;(读)
3.内存中通过第一步结果过滤,需要处理的结果集变成了3万;(内存逻辑处理)
3.更新3万记录;(写)
******************************************************************************************************************
结论:
1.主要关注你需要关注的对象,尽量不要让任何一条多余的操作存在;
2.内存中的逻辑处理速度相当快,比mysql的操作快相当多,所以如果可以在内存中做一定的处理从而简化mysql的操作,请不要犹豫