欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL定時任務,清理表數據方式

 更新時間:2022年11月16日 11:44:16   作者:lonecloud  
這篇文章主要介紹了MySQL定時任務,清理表數據方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL定時清理表數據

針對一些每天都會產生大量數據的表,比如說報警、日志表等,數據量太大占用了較多的空間,可以選擇定時清理這些表,只保留一段時間內的數據

對某個表只保留一個月內的數據

查看是否開啟MySQL定時任務

# 顯示為ON則已開啟
SHOW VARIABLES LIKE 'event_scheduler';

顯示為ON表示已經開啟

若未開啟,可以手動開啟

在my.cnf(windows下是my.ini)添加配置 event_scheduler=ON

添加完畢后,重啟MySQL服務即可

也可以通過語句方式開啟,但是這種方式只在當前啟動的實例有效,重啟MySQL服務后就會失效

set global event_scheduler=1;

創(chuàng)建存儲過程

CREATE PROCEDURE `del_data_count`(IN date_inter INT)
BEGIN
DELETE FROM alarminfo
WHERE
(TO_DAYS(NOW()) - TO_DAYS(alarmTime))>=date_inter; # 當前系統(tǒng)時間減去表的時間字段名
END

創(chuàng)建事件

# 創(chuàng)建事件
CREATE EVENT `del_tbl_expired_data`
# 表示創(chuàng)建時間定時周期,以及開始時間,該處表示從明天1點從開始,每天執(zhí)行一次該任務
ON SCHEDULE EVERY '1' DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
# 表示創(chuàng)建后并不開始生效
ON COMPLETION PRESERVE DISABLE
# 執(zhí)行存儲過程,刪除30天之前的數據
DO CALL del_data_count (30);

相關語句:

# 查看已有定時事件任務
SHOW EVENTS; 
# 開啟事件
alter event event_name on completion preserve enable;
# 關閉事件
alter event event_name on completion preserve disable;

MySQL定時自動刪除數據表

描述

自MySQL5.1.6起,增加了一個非常有特色的功能–事件調度器(EventScheduler),可以用做定時執(zhí)行某些特定任務(例如:刪除記錄、對數據進行匯總等等),來取代原先只能由操作系統(tǒng)的計劃任務來執(zhí)行的工作。

更值得一提的是MySQL的事件調度器可以精確到每秒鐘執(zhí)行一個任務,而操作系統(tǒng)的計劃任務(如:Linux下的CRON或Windows下的任務計劃)只能精確到每分鐘執(zhí)行一次。

對于一些對數據實時性要求比較高的應用(例如:股票、賠率、比分等)就非常適合。

開啟事件調度器

1、確認是否開啟

SHOW VARIABLES LIKE 'event_scheduler';

2、開啟命令

SET GLOBAL event_scheduler = ON;

創(chuàng)建事件<創(chuàng)建后默認開啟>

CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule
?[ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment']

?DO sql_statement;?

例如:

1.每分鐘(60S)清空一次記錄表

use database_name;
create event table_truncate on schedule every 60 second do truncate table operator_record_log;

2.每30天(2592000S)清空30天前的所有記錄,僅保留近30天數據

use database_name;
create event table_truncate on schedule every 2592000 second do delete from operator_record_log where create_date < DATE_SUB(CURDATE(),INTERVAL 30 DAY);

3.指定時間將表清空

use database_name;
create event table_truncate on schedule at timestamp '2022-01-01 00:00:00' do truncate table operator_record_log;

4.每天定時清空

use database_name;
create event table_truncate on schedule every 1 day starts '2022-01-01 00:00:00' do truncate table operator_record_log;

關閉事件

alter event event_name disable;

開啟事件

alter event event_name enable;

刪除事件

drop event if exists event_name;

查看事件

show events;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL大內存配置方案 如my-medium.ini、my-huge.ini等

    MySQL大內存配置方案 如my-medium.ini、my-huge.ini等

    這篇文章主要介紹了MySQL大內存配置方案 如my-medium.ini、my-huge.ini等,經測試確實不錯,訪問mysql速度快了很多
    2014-08-08
  • mysql數據庫優(yōu)化總結(心得)

    mysql數據庫優(yōu)化總結(心得)

    本篇文章是對mysql數據庫優(yōu)化進行了詳細的總結與介紹,需要的朋友參考下
    2013-06-06
  • mysql優(yōu)化limit查詢語句的5個方法

    mysql優(yōu)化limit查詢語句的5個方法

    這篇文章主要介紹了mysql優(yōu)化limit查詢語句的5個方法,它們分別是子查詢優(yōu)化法、倒排表優(yōu)化法、反向查找優(yōu)化法、limit限制優(yōu)化法和只查索引法,需要的朋友可以參考下
    2014-07-07
  • mysql 控制臺操作

    mysql 控制臺操作

    其實MYSQL的對數據庫的操作與其它的SQL類數據庫大同小異,您最好找本將SQL的書看看。
    2009-06-06
  • MySQL優(yōu)化之對RAND()的優(yōu)化方法

    MySQL優(yōu)化之對RAND()的優(yōu)化方法

    這篇文章主要介紹了MySQL優(yōu)化之對RAND()的優(yōu)化方法,本文詳細分析了Mysql中對RAND()的幾種優(yōu)化方法,并最終得出一個結論,需要的朋友可以參考下
    2014-07-07
  • mysql實現查詢每門課程成績最好的前兩名學生id和姓名

    mysql實現查詢每門課程成績最好的前兩名學生id和姓名

    這篇文章主要介紹了mysql實現查詢每門課程成績最好的前兩名學生id和姓名方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MYSQL的索引使用注意小結

    MYSQL的索引使用注意小結

    這篇文章主要介紹了MYSQL的索引使用注意,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • mysql下修改engine引擎的方法

    mysql下修改engine引擎的方法

    修改mysql的引擎為INNODB,可以使用外鍵,事務等功能,性能高。
    2011-08-08
  • 一千行的MySQL學習筆記匯總

    一千行的MySQL學習筆記匯總

    這篇文章主要介紹了一千行的MySQL學習筆記匯總,實例總結了MySQL學習中遇到的各類常見問題與實用技巧,需要的朋友可以參考下
    2014-10-10
  • MySQL PHP語法淺析

    MySQL PHP語法淺析

    在本篇文章里小編給大家分享了關于MySQL PHP語法的相關知識點,需要的朋友們學習參考下。
    2019-02-02

最新評論