大数据量表常用转储方案介绍
一、背景介绍
1.为什么要做数据转储?
随着业务的发展,数据表中的数据量越来越大,已经严重影响到数据库的IO(特别是读操作),
从而造成系统卡顿,接口数据查询响应慢的情况。
2.数据转储有什么优点?
(1) 大大提升查询效率
(2) 一般不用改动现有的代码或设计
(3) 方案可实施难度相对简单,风险可控
3.数据转储有什么缺点?
(1) 可能会影响现有功能
(2) 到了一定的数据量可能又需要转储
(3) 转储过程可能会比较耗时,需要考虑其他突发状况
4.什么场景可以考虑数据转储?
(1)业务操作由于大量历史数据存在导致数据查询效率慢
(2)历史数据的转储不影响业务的进行
(3)其他模块不依赖转储数据
5.什么数据量级可以考虑数据转储?
和数据库类型以及配置有关,一般情况下数据量达到了千万级别并且已经出现
查询的性能瓶颈时就可以考虑数据转储
二、常见大数据转储方案介绍
方案一: 按年份分表法
具体步骤:
1. 备份数据库
2. 根据现场的历史数据情况,创建年份表,如:T_HR_ATS_ATTENDANCERESULT_2022。
3. 分批将原表(T_HR_ATS_ATTENDANCERESULT)的历史年份数据插入到新建的相应的年份表中。
4. 核对数据,插入完之后将年份表数据量和原表相应年份中的数据量对比,观察数据量是否一致
5. 核对数据一致后,删除原表中已经备份完成的历史年份的数据。
6. 给所有的年份表增加索引,索引和原表保持一致。
7. 如果想要在界面查询历史年份数据,则需要增加功能,查询并适配历史年份表的数据。
方案优缺点:
优点: 1.业务表只保留当年的业务数据,可以大大提升查询效率。
2.当前业务表数据量不大,管理与备份比较方便。
3.方案可实施性较强,风险可控。
缺点: 1.需要增加代码来适配查询历史数据的功能。
2.需要dba每年进行一次数据转储。
方案一: 历史数据归档法
具体步骤:
1. 备份数据库
2. 新建中间表(T_HR_ATS_ATTENDANCERESULT_TEMP),并将
当前业务表(T_HR_ATS_ATTENDANCERESULT)的要保留的数据插入到新建的中间表中
3. 核对数据,中间表的数据和要保留的数据总数是否一致。
4. 重命名,当前业务表(T_HR_ATS_ATTENDANCERESULT)命名为
T_HR_ATS_ATTENDANCERESULT_2023,归档处理。
5. 将中间表(T_HR_ATS_ATTENDANCERESULT_TEMP)重命名为
T_HR_ATS_ATTENDANCERESULT ,并增加相应的索引。
方案优缺点:
优点:1. 可以保持原有的功能,需要归档历史数据。
2. 不需要改动代码。
3. 大大提升查询效率。
缺点: 1. 如果需要查询历史数据,需要增加代码功能,且查询会比较慢。
2. 未来数据量大到影响到查询效率的时候,数据表也需要转储。
3. 该方案适用于较少或者不需要查询历史数据的业务场景
方案三: 分区表法
Oracle的分区表是将一张大表在物理上分成几个较小的表,从逻辑上看仍然是一张完整的表。
这样,每次DML操作只考虑其中一张分区表即可
具体步骤:
1. 备份数据库
2. 创建一张新表(T_HR_ATS_ATTENDANCERESULT_TEMP),给新表建立分区,按年分区,
表结构和之前的考勤明细表一致
3. 分批将原表(T_HR_ATS_ATTENDANCERESULT)的全量数据插入到新建的
分区表(T_HR_ATS_ATTENDANCERESULT_TEMP)中
4. 插入完后核对一下两表数据是否一致
5. 给分区表建立分区索引,索引和原表保持一致
6. 将原来的表(T_HR_ATS_ATTENDANCERESULT) 重命名为 T_HR_ATS_ATTENDANCERESULT_bak2023,
分区表 T_HR_ATS_ATTENDANCERESULT_TEMP重命名为 T_HR_ATS_ATTENDANCERESULT
方案优缺点:
优点:1.可以保持原有的功能,不需要归档历史数据
2.大大提升查询效率
3.提高容错率,避免“一荣既荣,一损俱损”问题
缺点: 1.全量的历史数据分批插入到新的分区表比较耗时
2.分区表的管理与备份需要更加细致化
3.跨分区查询数据还是可能有性能瓶颈
4.普通表不能转化为分区表
三、注意事项
1.由于转储时间较长,需要考虑执行过程当中出现异常中断,或者其他外界因素 导致数据转储中断是否会给系统到来故 障或者数据错误的情况,提前规划好后续措施。
2.转储完成后及时核对数据量是否一致。
3.转储完成后及时验证当前业务功能 及 依赖转储数据的相关功能是否正常。
太实用了,写得很详细,给楼主点赞,以后数据量大都能轻松解决了
大数据量表常用转储方案介绍
本文2024-09-16 23:44:21发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-56485.html