登录
首页 >  数据库 >  MySQL

MySQL数据库表始终保持最近两个月的记录

来源:SegmentFault

时间:2023-01-21 10:58:42 466浏览 收藏

哈喽!今天心血来潮给大家带来了《MySQL数据库表始终保持最近两个月的记录》,想必大家应该对数据库都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到MySQL,若是你正在学习数据库,千万别错过这篇文章~希望能帮助到你!

实现自动备份的方法很多,这里说的是客户需要始终保持某个表中存储两个月的记录,以便保持性能。过期数据我们建议存储到另外一个表中,以备以后查询使用。
我们采用存储过程+linux Crontab的方式实现。

创建存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `bl_order_bak`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
-- 将旧表数据暂存起来
drop table if exists `bl_order_old`;
create table `bl_order_old` as (select * from bl_order);
-- 将超过两个月的数据保存到一个以时间为后缀的表中
set @str = date_format(now(), '%Y%m%d%H%i%s');
set @SQLString = CONCAT('create table bl_order_',@str,' as (select * from bl_order where add_time 

为执行此存储过程创建脚本

#!/bin/bash
mysql -hlocalhost -uroot -pbei666999 -P3306 -e "call  boli.bl_order_bak" ;

将文件存储起来:File:/data/order_bak.sh
并赋予执行权限:chmod +x /data/order_bak.sh

创建计划任务

crontab -e
59 23 1 * * sh /webdata/order_bak.sh

设定每月1号23点59分执行脚本调用存储过程。

以上就是《MySQL数据库表始终保持最近两个月的记录》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表