单表数据量方面建议采用表分区策略
以上截图虽非出自权威机构,但也有一定的道理。
我个人建议使用表分区的原因如下:
- 可行性方面:明细数据数据量大,与其相关度最高的属性为时间。对数据明细表的统计都带有时间维度,数据库可以明确的知道查询的数据分布在哪个分区。因此,可以按照时间进行表分区。
- 便捷性方面:明细表表分区携带时间维度的查询由数据库层面解决了路由方面的问题,不用像分表一样动态拼接表名。
- 灵活性/拓展性方面:MySql的表分区,可以动态实时的进行分区的增加、合并、拆分,这些操作过后,不需要调整程序代码。后续可根据明细表的数据量动态调整分区策略(我自己在本地数据库表300W的数据量下,进行表分区的拆分、合并,耗时秒级)