为垂直领域的商家提供订单管理能力,管理线上(各种互联网平台渠道)、线下等不同渠道的订单;
需求分析
只是为商家端提供订单管理能力,其特点是访问频次低,查询数据量大,需要支持灵活的订单查询,能够容忍一定的延时(相对于C端);
现象: 按照门店或商家分库分表时,由于个别门店/商家订单数据量大,导致分表数据不均匀,个别分表数据量特别多;
影响: 如果不扩容,个别分表的容量会特别大,出现性能问题,影响到同个分表的其它门店或商家;如果扩容,导致空间浪费,因为大部分分表并不需要扩容;
方案: 数据量大的门店或商家均匀打散到各分表中(门店id固定无法均匀打散,需使用随机因素),其它门店或商家仍按照门店id分表,通过ES聚合分表数据,查询时先查询ES到订单id及其所在分表,然后从数据库查询对应的订单;
缺点: 数据量大的门店或商家无法直接按照门店查询数据库,需要先查询ES外置索引,查询时延增加;
方案: 数据量大的门店或商家存储到单独的表,其它门店或商家仍按照门店id分表,通过ES聚合分表数据,查询时先查询ES获取到订单id及其所在分表,然后从数据库查询对应的订单;
缺点: 需要先查询ES外置索引,查询时延增加,门店或商家数据量大时仍需要考虑分表;
参考: