大家都知道没到万不已就不分表分库,我也是没有办法,先不使用中间件实现简单的分表操作。可根据实际情况来分表,我现在要分的就是运动穿戴设备的运动数据,单次运动对应多个运动轨迹记录,有运动表(watch_sport)和运动详情表(watch_sport_detail),数据量比较大的就是运动详情表了,像我这种情况算是比较简单的,单次运动详情都在一张表里就行,而且不同运动之间相对独立。
刚开始使用了比较傻的方法,就是有几个表就创建几个Entity和Mapper,然后通过插件watch_sport的Id取摩来判断执行哪个Mapper,刚开始我创建了10个表,所以Service有10个Mapper,写switch和10个case操作,如果是100个或者更多的表我真的要崩溃了。目前方案是取摩操作可取,利用动态替换表名的方式来简化操作。
添加数据操作
@Service
public class WatchSportDetailServiceImpl implements WatchSportDetailService {
@Autowired
private WatchSportDetailMapper watchSportDetailMapper;
@Override
public void addWatchSportDetail(WatchSportDetailViewModel model) {
final int tableNumber = 10; // 分表数量</