MySQL定期自動(dòng)刪除表_MySQL教程
推薦:MySQL中的CONCAT函數(shù)使用教程這篇文章主要介紹了MySQL中的CONCAT函數(shù)使用教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下 使用MySQL CONCAT()函數(shù)將兩個(gè)字符串連接起來,形成一個(gè)單一的字符串。試試下面的例子: ? 了解CONCAT函數(shù)更詳細(xì),考慮EMPLOYEE_TBL表具有以下記錄: ? 可以用以下
單位8億多條的日志表,經(jīng)過自動(dòng)分表之后,需要自動(dòng)刪除30天前創(chuàng)建的日志表。
但是只是在Master下線這些日志表,而Slave還需要保持在線,以備查詢。
由于Master-Slave結(jié)構(gòu),在Drop表之前,設(shè)置@@session.sql_log_bin=0,那么Drop的行為就沒有記錄到binlog,所以Slave的日志表就會(huì)被保留。
模擬環(huán)境如下,
mysql> show tables;
+---------------------------------+
| Tables_in_edmond |
+---------------------------------+
| sod_song_log_2014_1_22_13_18_20 |
| sod_song_log_2014_2_22_13_18_20 |
| sod_song_log_2014_3_22_13_18_20 |
| sod_song_log_2014_4_22_13_18_20 |
+---------------------------------+
4 rows in set (0.00 sec)
過程如下:
delimiter $$
CREATE procedure drop_table()
BEGIN
declare t_name varchar(64);
declare isFinished int default false;
declare log_table_list cursor for (select table_name from information_schema.tables where table_schema = 'EDMOND' and table_name like 'sod_song_log_%');
declare continue handler for not found set isFinished=true;
open log_table_list;
repeat
fetch log_table_list into t_name;
if isFinished = false then
if datediff(now(),replace(t_name,'sod_song_log_',''))>30 then
set @@session.sql_log_bin=0;
set @sqltext=concat('drop table ',t_name,';');
PREPARE c_tab_stat from @sqltext;
execute c_tab_stat;
set @@session.sql_log_bin=1;
end if;
end if;
until isFinished
end repeat;
close log_table_list;
END $$
delimiter ;
執(zhí)行過程,結(jié)果如下
mysql> call drop_table();
Query OK, 0 rows affected (0.28 sec)
mysql> show tables;
+---------------------------------+
| Tables_in_edmond |
+---------------------------------+
| sod_song_log_2014_4_22_13_18_20 |
+---------------------------------+
1 row in set (0.00 sec)
mysql> select now() from dual;
+---------------------+
| now() |
+---------------------+
| 2014-04-22 17:58:24 |
+---------------------+
1 row in set (0.00 sec)
并且binlog中沒有記錄這個(gè)Drop的行為。
配合Linux crontab即可實(shí)現(xiàn)定期自動(dòng)刪除表的功能。
一定不要把sql_log_bin設(shè)置為global級(jí)別,不能犯迷糊
分享:MySQL中的RAND()函數(shù)使用詳解這篇文章主要介紹了MySQL中的RAND()函數(shù)使用詳解,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下 MySQL RAND()函數(shù)調(diào)用可以在0和1之間產(chǎn)生一個(gè)隨機(jī)數(shù): ? 當(dāng)調(diào)用一個(gè)整數(shù)參數(shù)時(shí),RAND()使用該隨機(jī)數(shù)發(fā)生器種子值。每次在給定值種子生成,RAND()會(huì)產(chǎn)生一個(gè)可重復(fù)的
- MySQL中的CONCAT函數(shù)使用教程
- MySQL中的RAND()函數(shù)使用詳解
- MySQL中的SQRT函數(shù)的使用方法
- MySQL中的SUM函數(shù)使用教程
- 101個(gè)MySQL調(diào)試和優(yōu)化技巧
- 在MySQL中使用GTIDs復(fù)制協(xié)議和中斷協(xié)議的教程
- MySQL獲取所有分類的前N條記錄
- 將MySQL的臨時(shí)目錄建立在內(nèi)存中的教程
- 介紹使用WordPress時(shí)10個(gè)常用的MySQL查詢
- 初步介紹MySQL中的集合操作
- 簡單介紹MySQL中的事務(wù)機(jī)制
- mysql查詢區(qū)分大小寫高性能
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
- MySql數(shù)據(jù)分區(qū)操作之新增分區(qū)操作
- WordPress如何修改Mysql數(shù)據(jù)庫的表前綴
- Mysql修改datadir導(dǎo)致無法啟動(dòng)問題解決方法
- MySQL筆記之基本查詢的應(yīng)用詳解
- Mysql存儲(chǔ)引擎InnoDB和Myisam的六大區(qū)別
- 利用Xtrabackup工具備份及恢復(fù)(MySQL DBA的必備工具)
- MySQL筆記之字符串函數(shù)的應(yīng)用
- mysql 按照時(shí)間段來獲取數(shù)據(jù)的方法
- mysql與mysqli的區(qū)別與用法
- 網(wǎng)站數(shù)據(jù)多了分頁慢該怎么辦?
猜你也喜歡看這些
- sqlserver附加.mdf權(quán)限問題解決
- 教你快速掌握數(shù)據(jù)庫設(shè)計(jì)范式的基本概念
- sql server 2008中的apply運(yùn)算符使用方法
- 如何在SQL Server中去除表中不可見字符
- 真正高效的SQLSERVER分頁查詢(多種方案)
- 揭秘SQL Server中刪除重復(fù)數(shù)據(jù)的方法
- 兩種技巧處理SQL Server中的單引號(hào)
- 揭秘SQL Sever中各種語句的完整語法
- 解讀在SQL Server中使用索引的技巧
- SQL Server大數(shù)據(jù)量統(tǒng)計(jì)系統(tǒng)的經(jīng)驗(yàn)總結(jié)
- 相關(guān)鏈接:
- 教程說明:
MySQL教程-MySQL定期自動(dòng)刪除表
。