1. 背景
- 从2020.4.23至今2021.2.24 目前雷达轨迹表中的数据已接近三千万。
- 读取并发量不高。
- 数据增长较快。
2. 分表方案
2.1 涉及表
- intelligent_radar_track
intelligent_radar_track_detail
2.2 分表方案
按照user_id的哈希取模分片,预计分每个表分64个子表。
why:关于这两张表的查询几乎都是使用user_id作为where条件进行的。
- 并发量不高,暂不考虑分库。
- 64张子表足以支撑很多很多年。
2.3 分表工具
ShardingShphere-JDBC
2.4 数据迁移方案

数据迁移
从原始表查出数据,插入到新表中。
2.4.1 数据准确性如何校验
在迁移完成之后,通过数据校验程序,校验旧表和新表中的数据。如果数据存在不一致,根据date_update字段判断是否对新表进行更新。
2.4.2 数据库id问题
原先表使用自增id。
解决方案:
数据迁移完成之前,仍使用自增id。新插入的数据使用原表生成的自增id。
数据迁移完成之后,切换成分布式id,基于雪花算法。
