如何定期清理数据库中的无效数据?

news2025/1/11 0:48:33

企业的数据库在运行相当长一段时间后,都会出现无效数据的堆积,这些数据包含了过时、重复、错误、缺失(空字段)的数据,长期占据着宝贵的数据库空间。而在上云热潮的推动下,绝大多数企业已经将他们的业务数据和服务迁移到了云端。这种转变为企业带来更大灵活性的同时,也带来了管理和维护无效数据的挑战。

拿笔者公司的数据库来说,通常数据库的空间使用率告警阈值设置为 85%,到达该阈值就会触发告警,然后就需要检查是否有无效数据可清理,如果没有,那就需要申请对数据库磁盘进行扩容。

公司的这个流程,其实也是很多企业的数据库空间管理流程,随着业务发展,存储空间告急,告警的频率必然越来越频繁,并且出于成本考虑,也无法持续无休止地购买存储空间。因此,检查和清理无效数据就成了提升数据库存储空间的有效手段,同时也可以避免因为无效数据的堆积引发的一系列数据库性能问题。

清理无效数据的有效方案

对于业务数据本身而言,它可能并不是长期有效的,我们需要把过期的历史数据从业务库中清理出来,保存到其他数据库实例进行长时间存储,同时在业务库中删除这部分数据以空出空间存储新的业务数据。

整体的方案有了,如何去执行呢?如果仅仅是通过人肉检查和清理,那将耗费大量的时间,并且可能会带来一些失误,导致误删重要数据。最重要的是,清理无效数据是一项周期性的任务,我们需要让这项任务每隔一段时间自动化地去执行,让存储空间源源不断地被空出来。

看上去复杂,实则一点也不简单,但是如果用 NineData 的数据归档功能就可以轻松搞定。

简单演示下配置方法

1. 首先,我们要确保需要归档的表中有时间字段。这一点很重要,系统需要基于这个时间字段来判断数据是否需要归档。建议每张表的设计中都添加如下两个字段,有利于数据归档和数据订正等场景,提高表的可维护性。

`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'

2. 创建归档任务,选择归档+清理作为归档策略,选择源和目标数据源(长时间存储用),频率选择周期执行,并选择自动执行任务的周期和启动时间。


3. 选择需要进行归档的表名和目标表名,目标表名为存放归档数据的表;时间字段是归档数据的判断依据,例如订单产生时间等;保留天数即选择需要归档多少天以前的数据,如果需要归档一年以前的数据,就在这里输入 365。


4. 该功能还支持设置过滤条件,只有符合过滤条件的数据才会被归档。单击映射与过滤,在数据过滤条件中输入运算表达式即可。在下图的场景下,只有 dept_no = 0 的行会被归档。


5. 单击创建任务后,就进入审批流程阶段,系统会先对任务进行预检查,审批通过后就可以执行归档任务了。


总结

根据上面的流程配置完成后,数据归档任务会基于配置的周期定期扫描数据库,找出满足归档条件的数据,并将其移动到归档存储中,然后再清理业务库中的已归档数据。这样,业务库中只保留活跃的、经常访问的数据,不仅提高了数据库的性能,还可以节省存储空间,降低存储成本。

对于性能影响方面的顾虑,笔者经过实际测试,发现 NineData 会根据主键索引和唯一索引自动分批执行任务,对于数据库的影响非常小。

仅需进行一次数据归档任务的配置,就可以实现数据库空间的自动化运维管理,再也无需手动干预,轻轻松松简化 DBA 的数据清理工作,同时还提高了数据库操作的合规性,帮助企业实现降本增效,何乐而不为呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1526094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WIN10系统不定时蓝屏,终止代码:KERNEL_DATA_INPAGE_ERROR,且无法保存蓝屏日志解决办法

程序代码园发文地址:WIN10系统不定时蓝屏,终止代码:KERNEL_DATA_INPAGE_ERROR,且无法保存蓝屏日志解决办法-程序代码园小说,Java,HTML,Java小工具,程序代码园,http://www.byqws.com/ ,WIN10系统不定时蓝屏,终止代码&am…

springboot实战笔记

用户模块开发 用户登录接口实现 根据token获取用户信息 检查账号是否可用 用户注册接口实现

论文笔记:Llama 2: Open Foundation and Fine-Tuned Chat Models

导语 Llama 2 是之前广受欢迎的开源大型语言模型 LLaMA 的新版本,该模型已公开发布,可用于研究和商业用途。本文记录了阅读该论文的一些关键笔记。 链接:https://arxiv.org/abs/2307.09288 1 引言 大型语言模型(LLMs&#xff…

python异常:Exception、BaseException接收异常,并打印异常信息msg

except IOEerror 只能接收到 IO 类型的错误,对于抛出的 NameError 类型的错误,在 Python 中所有的异常类都继承 Exception,所以我们可以使用它来接收所有的异常。 1.Exception接收异常 源码: open("test1.py",r) pr…

什么是React属性钻取(Prop Drilling)

一、介绍 在React开发过程中,状态管理是一个绕不开的话题。无论是新手还是有经验的开发者,都会面临如何有效管理组件状态的挑战。React为我们提供了多种状态管理方案,如直接的状态传递(俗称"属性钻取")、Co…

【Android】工厂测试中 局部 字体显示重叠 问题分析与解决(Android14)

继上一篇【Android】工厂模式中 字体大小/显示重叠/显示不完整 相关 问题分析与解决 的分析与解决,可以实现调整所有字符整体的宽高。 但在局部,如果只希望修改局部的某一行字符的样式,且这一行字符没有直接的资源布局控制文件,而…

YOLOv8独家改进:block改进 | RepViTBlock和C2f进行结合实现二次创新 | CVPR2024清华RepViT

💡💡💡本文独家改进:CVPR2024 清华提出RepViT:轻量级新主干!从ViT角度重新审视移动CNN,RepViTBlock和C2f进行结合实现二次创新 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡…

modbus客户端

通信方式支持 串口 / udp / tcp通信; 设备协议支持RTU / ASCII / TCP; 读取类型支持bool / short / int / float / double / long / batchbool / batchword

sdwan上外网合法吗?sdwan访问外网的实现方式

随着企业网络的不断发展,越来越多的企业开始探索使用SD-WAN(软件定义广域网)技术来提升网络性能和灵活性。然而,一些人对于SD-WAN是否可以实现与外部网络的连接和访问产生疑问。 SD-WAN是一种基于虚拟化和软件定义的网络技术&…

JavaScript进阶:js的一些学习笔记-原型

文章目录 js面向对象1. 原型2. constructor属性3. 对象原型4. 原型继承5. 原型链 js面向对象 构造函数 属性和方法 function Person(name,age){this.name name;this.age age;this.play ()>{console.log(玩!);} } const a new Person(1,12),b new Person(2…

使用数字人SadTalker创建免费AI主播

很有趣的GitHub项目SadTalker,它能够将一张图片跟一段音频合成一段视频,看起来毫无违和感,如果不仔细看,甚至很难辨别真假,预计未来某一天,一大波网红即将失业。 虽然这个项目目前的主要研究方向还是基于c…

HarmonyOS NEXT应用开发—图片压缩方案

介绍 图片压缩在应用开发中是一个非常常见的需求,特别是在处理用户上传图片时,需要上传指定大小以内的图片。目前图片压缩支持jpeg、webp、png格式。本例中以jpeg图片为例介绍如何通过packing和scale实现图片压缩到目标大小以内。 效果图预览 使用说明…

Vulnhub靶机:Kioptrix_Level1.3

一、介绍 运行环境:Virtualbox 攻击机:kali(192.168.56.101) 靶机:Kioptrix_Level1.3(192.168.56.109) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vul…

大规模采集主流电商平台商品详情页获取商品详情,SKU,价格操作流程

taobao API 接入 参数说明 通用参数说明 参数不要乱传,否则不管成功失败都会扣费url说明 n/平台/API类型/ 平台:淘宝,京东等, API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_ke…

【周赛】第385场周赛

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1】100212.统计前后缀下标对 100212. 统计前后缀下标对 Ihttps://leetcode.cn/problems/count-prefix-and-suffix-pairs-i/ 熟…

【解读】Gartner 2023 DevOps平台魔法四象限

2023年6月5日Gartner发布了DevOps平台魔法四象限洞察报告(Magic Quadrant for DevOps Platforms DevOps),Gartner指出,DevOps平台正在成为DevOps工具链的一种更简单的替代品,为组织提供一套整合的集成能力。软件工程领…

力扣Lc17--- 345.反转字符串中的元音字母(java版)-2024年3月18日

1.题目 2.知识点 注1: indexOf() 是 Java 中 String 类的方法之一,它用于查找指定字符或字符串在字符串中第一次出现的位置。如果找到了该字符或字符串,则返回它在字符串中的索引位置(从0开始),如果没有找…

【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx +解决方式+自我尝试+记录】

【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx 解决方式自我尝试记录】 1、前言2、实验环境3、问题说明4、我的努力与查到解决的方式(1)补充两个文件,让软件正常执行(2)尝试修复d…

Elasticsearch8.x版本Java客户端Elasticsearch Java API 如何并发修改

前言 并发控制,一般有两种方案,悲观锁和乐观锁,其中悲观锁是默认每次更新操作肯定会冲突,所以每次操作都要先获取锁,操作完毕再释放锁,适用于写比较多的场景。而乐观锁是默认每次更新操作都不会冲突&#…

51单片机学习笔记6 数码管显示

51单片机学习笔记5 数码管显示 一、动态数码管1. 动态数码管工作原理2. 工作过程3. 原理图(1)数码管及74HC245(2)74HC138译码器 4. 74HC245介绍(1)**功能**(2)**引脚**(3…