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

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

拿笔者公司的数据库来说,通常数据库的空间使用率告警阈值设置为 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.rhkb.cn/news/278238.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux第77步_处理Linux并发的相关函数

了解linux中的“原子整形数据”操作、“原子位数据”操作、自旋锁、读写锁、顺序锁、信号量和互斥体,以及相关函数。 并发就是多个“用户”同时访问同一个共享资源。如:多个线程同时要求读写同一个EEPROM芯片,这个EEPROM就是共享资源&#x…

2024全网最全Excel函数与公式应用

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 引言 Excel是一款广泛应用于商业、教育和个人…

某夕夕商品数据抓取逆向之webpack扣取

逆向网址 aHR0cHM6Ly93d3cucGluZHVvZHVvLmNvbQ 逆向链接 aHR0cHM6Ly93d3cucGluZHVvZHVvLmNvbS9ob21lL2JveXNoaXJ0 逆向接口 aHR0cHM6Ly9hcGl2Mi5waW5kdW9kdW8uY29tL2FwaS9naW5kZXgvdGYvcXVlcnlfdGZfZ29vZHNfaW5mbw 逆向过程 请求方式:GET 参数构成 【anti_content】…

基于SSM SpringBoot vue办公自动化计划管理系统

基于SSM SpringBoot vue办公自动化计划管理系统 系统功能 登录注册 个人中心 员工信息管理 部门信息管理 会议管理 计划管理 行程安排管理 行程进度管理 管理员管理 开发环境和技术 开发语言:Java 使用框架: SSM(Spring SpringMVC Mybaits)或SpringBoot 前端…

【题目】【网络系统管理】2022年甘肃省职业院校技能大赛-网络构建-试卷

极安云科专注职业教育技能竞赛培训4年,包含信息安全管理与评估、网络系统管理、网络搭建等多个赛项及各大CTF模块培训学习服务。本团队基于赛项知识点,提供完整全面的系统性理论教学与技能培训,成立至今持续优化教学资源与讲师结构&#xff0…

vivo统一接入网关VUA转发性能优化实践

作者:vivo 互联网服务器团队 - Qiu Xiangcun 本文将探讨如何通过使用Intel QuickAssist Technology(QAT)来优化VUA的HTTPS转发性能。我们将介绍如何使用QAT通过硬件加速来提高HTTPS转发的性能,并探讨QAT在不同应用场景中的表现。最…

Python下有关CV的一些算法和函数

目录: 1. HoughCircles二级目录三级目录 1. HoughCircles 霍夫圆检测 二级目录 三级目录

【CKA模拟题】查询消耗CPU最多的Pod

题干 For this question, please set this context (In exam, diff cluster name) 对于此问题,请设置此上下文(在考试中,diff 集群名称) kubectl config use-context kubernetes-adminkubernetesFind the pod that consumes the …

[云原生] Prometheus自动服务发现部署

一、部署服务发现 1.1 基于文件的服务发现 基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式。 Prometheus Server 会定期从文件中加载 Target 信息,文件可使用 YAM…

大模型训练准备工作

一、目录 1 大模型训练需要多少算力? 2. 大模型训练需要多少显存? 3. 大模型需要多少数据量训练? 4. 训练时间估计 5. epoch 选择经验 6. 浮点计算性能测试 二、实现 1 大模型训练需要多少算力? 训练总算力(Flops&…

逻辑运算函数

true默认为1 false默认为0 可以用于多条件筛选 if语句 多层嵌套

【C#算法实现】可见的山峰对数量

文章目录 前言一、题目要求二、算法设计及代码实现2.1 算法思想2.2 代码实现 前言 本文是【程序员代码面试指南(第二版)学习笔记】C#版算法实现系列之一,用C#实现了《程序员代码面试指南》(第二版)栈和队列中的可见的…

Redisson

Redisson 1 什么是Redisson2.SpringBoot整合Redisson3.使用Redisson实现分布式锁3.1 Redisson是如何解决这两个问题的呢?3.2 Redisson是怎么保证自己加的锁, 自己释放锁? 1 什么是Redisson Redisson是一个基于Redis的java框架, 用于简化Redis的操作. 它提供了丰富的功能, 包…

Python 界面逻辑分离示例

使用PyQt5设计UI界面开发桌面应用程序的小伙伴,刚开始可能都会遇到这样让人不爽的事:用Qt Designer好不容易设计好的界面并写好逻辑代码,已经可以正常运行了,某天发现界面要做个小改动(这种事好象永远都避不了),重新修…

MySQL8.0索引新特性

文章目录 1 支持降序索引2 隐藏索引 1 支持降序索引 举例:分别在MySQL 5.7版本和MySQL 8.0版本中创建数据表ts1,结果如下: CREATE TABLE ts1(a int,b int,index idx_a_b(a,b desc) );在MySQL 5.7版本中查看数据表ts1的结构,从结…

【SpringBoot】请求与响应参数 IoC与DI 总结

文章目录 ① —— 请求 ——一、简单参数 RequestParam1.1 参数与形参 命名相同1.2 参数与形参 命名不同 二、实体参数2.1 简单实体对象2.2 复杂实体对象 三、数组集合参数3.1 数组3.2 集合 RequestParam 四、日期参数 DateTimeFormat五、JSON参数 RequestBody六、路径参数 Pat…

下载chromedrive,使用自动化

1、先看一下自己浏览器的版本 2、访问 https://googlechromelabs.github.io/chrome-for-testing/

QT中dumpcpp以及dumpdoc使用

qt中调用COM的方式方法有四种,参考解释在 Qt 中使用 ActiveX 控件和 COM (runebook.dev) 介绍dumpcpp的使用方法Qt - dumpcpp 工具 (ActiveQt) (runebook.dev): 在安装好了的qt电脑上,通过powershell窗口来实现,powershell比cmd要…

算法——贪心

「贪心的本质是选择每一阶段的局部最优,从而达到全局最优」 贪心无套路 1. 分发饼干 贪心策略: (1)局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩 &#xff08…

广州大彩科技新品发布:大彩科技COF系列2.4寸串口屏发布!

一、产品介绍 此次发布的是S系列平台2.4寸COF超薄结构串口屏,分辨率为240*320,该平台采用了Cortex-M3内核的处理器,内置了2Mbyte PSRAM和64Mbit FLASH,是专为小尺寸串口屏设计的MCU,精简了外围电路。 该平台默认支持大…