Postgre分区表归档
2024-6-19
| 2024-6-19
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password
数据库分区归档是一种将历史数据拆分到独立的表或数据库中的方法,以减少主要数据表或数据库的大小和查询性能的影响。
 
一、实际场景
Postgre数据库在11版本后对分区表的支持愈加完善,所以在项目中可以放心使用。在已经创建分区表的情况下,日积月累数据量也越来越大,对性能乃至备份都会产生一定影响。系统功能只是使用近期的数据,历史数据如何归档很自然的提上日程。
 
二、主要思路 1.确定归档策略:可以按照时间、数据量等条件将历史数据归档到独立的数据库或表中。 2.创建一个独立的数据库或表来存储这些历史数据。 3.编写归档脚本:根据归档策略,编写脚本将历史数据从主要数据库或表中复制到独立的数据库或表中。 4.定期执行归档脚本:可以根据需要定期执行归档脚本,将历史数据归档到独立的数据库或表中。 5.管理归档数据:可以考虑删除某些历史数据,以保持归档数据库或表的大小和性能。
 
三、分区表的管理(归档脚本)
Postgre数据库detach和attach可以方便的将分区表从主表分离和挂载。
假设我们的主表名字为sws_ais_data ,每天会创建四个分区表sws_ais_data20221019_1到sws_ais_data20221019_4,分别承担6个小时数据的写入。下面是针对单一分区表的sql操作。
 
1.单个分区表操作
因为每天有四个文件,所以会有很多分区表的存在,归档需要批量操作。
 
2.批量detach函数
 
3.批量detach函数调用
其功能是将主表sws_ais_data下分区表包含‘20221027’字符串的子表进行分离。如果第二个参数是2022,那就是将一年的子表进行分离。
 
3.批量attach函数
 
5.批量attach函数调用
其功能是将数据库中包含‘20221027’字符串的表进行挂载,挂载到名字为sws_ais_data的主表上。如果第二个参数是2022,那就是将一年的子表进行挂载。
 
四、归档数据管理
手动或自动定期执行归档脚本,会detach出一批独立的分离出来的表,对这些表进行备份,从而减轻业务表的负担。如何将来需要使用到历史数据,则将备份表导入,再执行attach挂载上来使用。
 
 
  • 开发
  • 微信回调-内网穿透对接WSDL短信接口
    Catalog