自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL數據庫小項目日志表定期刪除實現方案

數據庫 MySQL
最近需要對一個對數據表做清理的操作,這個環(huán)境是一個線上業(yè)務,因為各種原因,表中的數據比較臃腫,而磁盤空間又比較小,所以經常導致磁盤空間爆滿,和業(yè)務確認后對數據做定時刪除,實現方式如下,以下針對小項目。

最近需要對一個對數據表做清理的操作,這個環(huán)境是一個線上業(yè)務,因為各種原因,表中的數據比較臃腫,而磁盤空間又比較小,所以經常導致磁盤空間爆滿,和業(yè)務確認后對數據做定時刪除,實現方式如下,以下針對小項目。

[[286806]]

1. 開啟事件調度器

  1. set global event_schedulerON;             show variables like '%event_scheduler%';#my.cnf增加參數event_scheduler = on 

2. 創(chuàng)建日志刪除記錄表

  1. CREATE TABLE IF NOT EXISTS mq_log( name VARCHAR(400) NOT NULL COMMENT '刪除信息', row INT COMMENT '刪除行數', del_time TIMESTAMP COMMENT '刪除時間') COMMENT = '日志刪除記錄表'

3. 創(chuàng)建日志刪除存儲過程

這里主要用了異常記錄、影響行數記錄、事務處理幾個特點

  1. drop procedure if exists del_mq_log;DELIMITER // create procedure del_mq_log()BEGIN    DECLARE  affect_rows INT;       DECLARE  affect_rows2 INT;       DECLARE  affect_rows3 INT;       declare v_commit int default 2; -- 定義事務用,1為正常,-10為失敗    declare msg text;-- 記錄錯誤信息    -- 異常的時候msg捕獲報錯信息    declare continue handler for sqlexception     begin get diagnostics condition 1  msg = message_text;set v_commit = -10; end ;        start transaction;    -- 設置事務    delete from lcp_mq_record where last_update_date < DATE_SUB(CURDATE(),INTERVAL 30 DAY);    select ROW_COUNT() into @affect_rows;    delete from lcp_dd_service_record where last_update_date < DATE_SUB(CURDATE(),INTERVAL 30 DAY);    select ROW_COUNT() into @affect_rows2;    delete from lcp_api_service_record where last_update_date < DATE_SUB(CURDATE(),INTERVAL 30 DAY);    select ROW_COUNT() into @affect_rows3;    insert into mq_log values('刪除lcp_mq_record成功',@affect_rows,now()),('刪除lcp_dd_service_record成功',@affect_rows2,now()),('刪除lcp_api_service_record 成功',@affect_rows3,now()); -- 記錄刪除情況    -- 異?;貪L且記錄日志    if v_commit = -10 then           ROLLBACK;        insert into mq_log values(msg,0,now());    end if ;END//DELIMITER ; 

mysql數據庫小項目日志表定期刪除實現方案

4. 創(chuàng)建一個每天凌晨1點執(zhí)行存儲過程的定時任務

  1. DROP event IF EXISTS e_del_mqlog;     CREATE EVENT e_del_mqlog     ON SCHEDULE   EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)  DO call del_mq_log(); 

5. 第一次刪除需做回收

  1. alter table lcp_mq_record engine=innodb;alter table lcp_dd_service_record engine=innodb;alter table lcp_api_service_record engine=innodb

mysql數據庫小項目日志表定期刪除實現方案

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2011-08-02 10:37:27

Oracle數據庫archivelog文

2019-01-02 09:30:59

MySQL數據庫日志審計

2022-05-09 15:52:23

MySQL數據庫數據庫表

2010-05-24 13:14:19

創(chuàng)建MySQL

2011-07-18 09:36:42

Mysql數據庫root@localh

2009-07-07 16:39:33

JSP數據庫配置

2011-07-28 17:02:59

MYSQL數據庫跨表更新數據并合

2018-05-02 08:48:58

Raid存儲MySQL

2010-10-13 11:54:00

MySQL數據庫表

2009-02-02 13:16:23

修復數據表MySQL

2011-05-18 13:16:21

MySQL數據庫鎖定

2010-06-07 13:53:04

MySQL數據庫表

2019-08-19 01:34:38

數據庫SQL數據庫優(yōu)化

2010-05-20 16:44:18

卸載MySQL

2011-03-07 16:42:05

MySQL數據庫安全

2018-08-24 13:58:13

數據庫MySQL備份

2011-03-28 09:27:52

數據庫壓縮日志

2019-12-13 10:31:45

數據庫SQLMySQL

2023-09-14 23:05:57

? ?MySQL數據庫

2011-03-09 08:53:02

MySQL優(yōu)化集群
點贊
收藏

51CTO技術棧公眾號