原因和目的
- 由于交易量大或者日积月累造成数据库的数据量越来越大。会导致系统性能大幅下降,所以要对部分业务的表数据作备份和清理
- 减少数据量,来提升请求响应的速度,提升用户体验
数据是否需要清理的阀值判断
通常当表的磁盘大小超过 5GB,或对于 OLTP 系统(联机事务处理),表的记录超过 3000 万,都应考虑对表进行分区或者分表。除了上述阀值之外,还可以根据数据库性能指标情况来考虑分区或者分表,比如在已经充分挖掘了表设计、索引设计、查询设计等单表性能优化手段之后,依然不能满足业务的需要,这个时候,即使表的容量或记录尚未达到上述阀值那也要考虑分区或者分表了,这个时间点的记录数即为该表阀值。
一般来讲,用记录数标记阀值会比表的磁盘容量更容易操作一些,所以一般以达到该阀值时的记录数作为阀值,下文也会以此来作为阀值。每个表的数据格式不同、索引设计、单位事务处理时间容忍度不同,所以这个阀值也不同。
满负载周期判断
也就是说,一张空表,需要多久才能达到它的阀值,这个周期我们称之为满负载周期。如果业务量已经稳定,数据量积累到当前阀值所需要的时间即为该表满负载周期;如果业务量稳定上升,即数据量在递增,根据递增速度估算出下一个满负载周期——也就是说,什么时候到达阀值什么时候进行迁移,但我们要做到提前规划,心中有数。
迁移周期判断
拿到该表阀值之后,需要对迁移周期进行判断,即多久对该表迁移一次?可以一天迁移到历史表一次,即迁移周期就是一天。这样操作很简单,完全可以做成定时任务,所以很多系统这么干,只是有些频繁。 <