大数据量表常用转储方案介绍

一、背景介绍
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. 未来数据量大到影响到查询效率的时候,数据表也需要转储。
大数据量表常用转储方案介绍
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



