首页
学习
活动
专区
圈层
工具
发布

mysql 做归档

基础概念

MySQL归档是指将不再频繁访问的历史数据移动到归档数据库或归档表中,以优化主数据库的性能和存储空间。归档数据通常用于备份、报告和分析等目的。

相关优势

  1. 性能提升:通过移除不再频繁访问的数据,主数据库的查询和写入性能得到提升。
  2. 存储优化:归档数据可以存储在成本较低的存储介质上,从而优化存储成本。
  3. 数据恢复:归档数据可用于数据恢复和历史数据分析。

类型

  1. 逻辑归档:通过导出数据到外部文件(如CSV、JSON等)进行归档。
  2. 物理归档:直接将数据移动到归档数据库或归档表中。

应用场景

  1. 日志记录:将旧的日志数据归档,以便进行长期存储和分析。
  2. 历史数据查询:将不再频繁访问的历史数据归档,以优化主数据库性能。
  3. 备份和恢复:定期归档数据以备不时之需。

常见问题及解决方法

问题1:如何将数据归档到另一个数据库?

解决方法:

代码语言:txt
复制
-- 创建归档数据库
CREATE DATABASE archive_db;

-- 将数据从主数据库表归档到归档数据库表
INSERT INTO archive_db.archive_table (column1, column2, ...)
SELECT column1, column2, ...
FROM main_db.main_table
WHERE date_column < '2023-01-01';

问题2:如何定期自动归档数据?

解决方法:

可以使用MySQL的事件调度器(Event Scheduler)来定期执行归档任务。

代码语言:txt
复制
-- 启用事件调度器
SET GLOBAL event_scheduler = ON;

-- 创建归档事件
CREATE EVENT archive_event
ON SCHEDULE EVERY 1 MONTH
DO
BEGIN
    INSERT INTO archive_db.archive_table (column1, column2, ...)
    SELECT column1, column2, ...
    FROM main_db.main_table
    WHERE date_column < DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
END;

问题3:归档数据后如何查询?

解决方法:

可以通过连接主数据库和归档数据库来查询归档数据。

代码语言:txt
复制
-- 查询主数据库和归档数据库的数据
SELECT main_db.main_table.column1, archive_db.archive_table.column2
FROM main_db.main_table
LEFT JOIN archive_db.archive_table
ON main_db.main_table.id = archive_db.archive_table.id
WHERE main_db.main_table.date_column < '2023-01-01';

参考链接

通过以上方法,你可以有效地对MySQL数据进行归档,优化数据库性能和存储空间。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从MYSQL 数据库归档 到 归档设计

,但还是避免不了人工的介入,并且也不可能是天天这样做。...4 自己设计数据归档 自己设计数据归档的面就广了,有使用程序来做的,例如JAVA ,Python等等,也有使用存储过程来进行的。...下面就是一个MYSQL 针对一个数据库表归档的案例(这个案例也是有缺陷的,但目前是秉承着够用就好,以及时间成本的原则) 首先设计一个归档要考虑的问题如下 1 归档表的大小,以及每日最大,或最小的归档数据量...这样归档有没有缺点,当然有,缺点马上就可以说出几个 1 为什么还要在本地机归档数据,不应该是传送到其他机器上吗 2 为什么不设置每次归档的数量限制(每次限制操作的行数),这对MYSQL不是很用吗,为什么要写死...3 为什么要用MYSQL 存储过程来做,使用python不是更灵活 其实一言难尽,都和需求有关,所以很多设计出来的东西,外人一看一堆毛病,如果你进入到他的内部,一段时间估计你就懂得为什么会设计出这样或那样的东西

6.6K41
  • MySQL审计数据归档演示

    作者:Mike Frank 译:徐轶韬 在此博客中,我将演示如何在许多mysql实例之间将审计日志进行合并归档。...将这些行从已审计的数据库插入到审计数据归档的MySQL数据库中。如您所见,mysqlx API将使事情变得更加简单。 一些事实。...由于安全性、分析等多种原因,最佳做法是经常从MySQL服务器上获取审计数据,并将其收集到一些中央数据存储中,您可以在其中查看所有MySQL服务器上的活动。为什么会这样做?...首先让我们以管理员身份登录到归档MySQL服务器实例上–我将使用root。整个示例都需要使用mysql shell。它包括用于从目标服务器提取审计数据进行计划批处理归档的python。...步骤1 –审计归档数据库设置。

    2K40

    MySQL8.0 redo log归档功能

    我们知道,在MySQL中,redo log是一个文件组,一般是3个文件,循环写入,写满的时候会做redo log层面的checkpoint,然后覆盖之前的redo log;而binlog是有归档功能的...MySQL8.0.17中引入了redo log的归档功能,如果我们开启归档功能,redo log会持续不断的生成,而不会覆盖掉之前的redo log。这个功能主要在哪种场景下应用呢?...有了redo log的归档功能,就可以在备份启动的时候同步启动redo log 归档,而在备份结束的时候同步停止redo log归档,这样就可以避免这个备份的问题了。...这个用户,并修改用户属性为700 sudo chown -R mysql.mysql /tmp/20200713 mysql >>system chmod 700 /tmp/20200713 mysql...一般情况下,redo log的归档功能,对性能的影响比较小,在高并发事务场景下,可能对性能的影响会有点大。具体数据有待测试。

    1.7K52

    怎样做海量数据归档管理?选择YashanDB的理由详解

    因此,企业需要一种高效的归档管理解决方案,以确保数据的安全性和可访问性。在众多解决方案中,YashanDB凭借其强大的架构、灵活的存储选项以及高性能的计算能力,成为了企业归档管理的不二选择。...通过主备复制实现高可用性,确保数据在单点故障时依然能够可靠访问,满足基本的归档需求。2. 分布式部署对海量数据分析尤为关键,分布式架构能够根据需求水平扩展,增加处理能力,支持数据的高效分片与归档管理。...高效的归档机制YashanDB针对海量数据的归档设计了一系列高效的机制,包括但不限于:1....自动化管理通过定时任务(JOB)实现归档操作的自动化,大幅降低人为操作的错误概率,并提高归档效率。具体技术建议根据数据访问需求,选择适合的存储结构(行存表或列存表),以支撑海量数据的存储与分析。...设定定时的自动化任务,对满足条件的数据执行归档操作,降低运维负担。定期进行数据备份,确保数据的完整性和恢复能力,特别针对重要的归档数据,制定完善的备份策略。

    23510

    归档

    归档 基本概念 - 对象归档是指将对象写入文件保存在硬盘上,当再次重新打开程序时,可以还原这些对象。你也可以称他为对象序列化,对象持久化。...归档的形式 对Foundation库中对象进行归档 自定义对象进行归档(需要实现归档协议,NSCoding) 归档后的文件是加密的,属性列表是明文的。...示例 归档(序列化) //对数组进行归档,归档文件名为temparray 后缀名可以任意 NSString *homeDirectory = NSHomeDirectory(); NSArray *...%@",unArray); 自定义内容归档示例 归档 使用 NSData 实例作为归档的存储数据 添加归档的内容(设置key与value) 完成归档 将归档数据存入磁盘中 解归档 从磁盘读取文件,生成...NSData 实例 根据 Data 实例创建和初始化解归档实例 解归档,根据key 访问 value 的值 代码实例 归档 NSString *homeDirectory = NSHomeDirectory

    1.9K60

    MySQL数据归档小工具推荐及优化--mysql_archiver

    一.主要概述 MySQL数据库归档历史数据主要可以分为三种方式:一.创建编写SP、设置Event;二.通过dump导入导出;三.通过pt-archiver工具进行归档。...pt-archiver是Percona-Toolkit工具集中的一个组件,是一个主要用于对MySQL表数据进行归档和清除的工具。它可以将数据归档到另一张表或者是一个文件中。...有一个网友通过Python开发了将pt-archiver打包成了一个小工具—mysql_archiver,它基本实现了归档作业的配置化部署,使用起来挺不错。"...MySQL_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。"...--file 指定表数据需要归档到的文件。使用类似MySQL DATE_FORMAT()格式化命名方式。

    3.5K00

    YashanDB归档管理

    #查看归档配置V$DATABASE视图中的log_mode字段表示数据库当前的归档模式配置,字段值为ARCHIVELOG表示为归档模式,NOARCHIVELOG表示非归档模式。...:-- 从非归档模式调整到归档模式ALTER DATABASE ARCHIVELOG;-- 从归档模式调整到非归档模式,当数据库处于主备复制模式(单机主备部署、主备共享集群部署)时,无法从归档模式切换为非归档模式...ARCHIVE LOG CURRENT;归档日志查看可以通过V$ARCHIVED_LOG视图查看归档日志的信息,如归档日志的序列号、归档日志名和归档时间等。...示例SELECT * FROM V$ARCHIVED_LOG;归档日志清理归档空间有限的情况下,需要根据保留策略对归档日志进行清理。默认安装下,在线日志的大小为128M,则归档日志最大可为128M。...ARCH_CLEAN_UPPER_THRESHOLD:指定归档清理触发的阈值,归档日志总大小超出这个值时进行归档清理,如果该值为0表示关闭自动清理。

    92010

    分类与归档

    侧边栏已经正确地显示了最新文章列表、归档、分类等信息。现在来完善归档和分类功能,当用户点击归档下的某个日期或者分类下的某个分类时,跳转到文章列表页面,显示该日期或者分类下的全部文章。...归档页面 要显示某个归档日期下的文章列表,思路和显示主页文章列表是一样的,回顾一下主页视图的代码: blog/views.py def index(request): post_list =...由于是按照日期归档,因此这里根据文章发表的年和月来过滤。...测试一下,点击侧边栏归档的日期,跳转到归档页面,发现报了个错误,提示没有安装 pytz。激活虚拟环境,使用 pip install pytz 安装即可。...重启一下开发服务器,再次测试,发现可以显示归档下的文章列表了。

    2.3K90

    高版本mysql做审计

    需求mysql 8.0.33 环境需要审计:审计内容:要求记录DBA账号的所有操作, 业务账号的DDL操作(dml太多了.)...Percona Audit Log Plugin 不兼容mysql社区版当然还有mysql企业版的审计, 但没钱....那就只能自己写脚本了呗, 可以参考我之前写的审计脚本 https://...(pyinstaller -F auditmysql_by_ddcw.py), 这里旧直接使用二进制文件了模拟连接不支持SSL.我这里演示的是mysql-router的....因为mysql-router没得审计功能. 但又想要审计功能.随便执行点SQL随便跑点SQL后, 查看审计日志内容. 我这里旧只测试下dba账号的. 执行的sql都记录下来了....跑不了了(不是)配置文件说明FILENAME 审计日志的文件名INTERFACE_NAME 网卡名字, 就是应用的流量到mysql的时候经过的网卡INTERFACE_PORT 目标端口, 如果是mysql

    92210

    一次生产环境mysql迁移操作(一)数据归档

    背景 在项目过程中我们经常要对数据库进行迁移、归档、拆分等等操作,现在描述下几种方案 mysqldump 该命令可以指定导出数据库,该命令可能用时很久 cp 直接拷贝mysql数据文件,这里会影响业务需要下线...4、移除mysql原有数据,并挂载 mv /var/lib/mysql /var/lib/mysql_bak mount /dev/vgssd/mysql /var/lib/mysql 5、 拷贝线上数据到本地...cp -af remotepath /var/lib/mysql chown mysql:mysql /var/lib/mysql 执行完上面步骤后,再开始进行归档操作 归档步骤 1、停止mysql...-p /mnt/mysql_temp mount -o ro,nouuid /dev/vgssd/mysql_backup /mnt/mysql_temp ls /mnt/mysql_temp 6、.../mnt/mysql_temp lvremove /dev/vgssd/mysql_backup 定时归档 暂定为30天,这样才能备份所有数据。

    2.2K10

    Oracle 归档日志

    对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用 自动归档功能如开启,则后台进程arcn在日志切换时自动完成归档,否则需要手动归档 归档日志用途 恢复数据库 更新standby...,且支持在线恢复 使用归档日志能够实现联机或脱机时点恢复(即可以恢复到指定的时间点、指定的归档日志或指定的SCN) 三、两种模式的切换设置及手动归档 1.非归档到归档模式 a.一致性关闭数据库(...,可以指定数据库规定所需初始化的进程数,缺省的归档进程数为2 一般情况下不需要修改该参数,Oracle会根据归档情况自动启动额外的归档进程 也可以动态的增加或减少归档进程数,比如有些业务在月底需要进行大量归档...,平时则归档较少,对此可以动态修改 修改方法 ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3; 5.配置归档(两种归档位置配置方法) a.归档到本机且少于等于两个归档位置...enable -->缺省状态,可以在该归档位置进行归档 defer -->禁用该归档位置 h.演示归档路径配置及查看归档进程,归档位置状态 SQL> ARCHIVE LOG LIST; --

    2.7K20

    MySQL数据归档实战-python和pt-archiver的强强结合

    ,如果要知道每个归档任务成功还是失败、跑了多长时间、归档了多少数据,就得手工逐个日志查一查,非常枯燥的重复劳动,是否有办法可以统一管理呢?...于是用python折腾了一个小工具…… 二,mysql_archiver 2.1 归档调度 db_archive_exec.py,从数据库获取归档任务的基本信息,调用pt-archiver进行操作 2.1.1...表结构设计 表db_archive_info,主要存放归档任务的基本信息 表db_archive_log,主要存放归档任务的执行日志 2.1.2 获取归档任务 2.1.3 调用pt-archiver...mysql_archiver基本上实现了数据归档的自动运转,统一的归档任务调度管理、自动监控和预警、自动生成报表。在一定程度上节约了生产力,提高了运维效率。...mysql_archiver也是存在很多缺点的,比如:python代码有点臃肿,不够简洁;缺少可视化的操作界面,如果能有一套运维平台,那就完美了。 期待各路大神的交流、指点……

    2.4K80
    领券