MySQL按時間拆分千萬級大表的實現(xiàn)代碼
更新時間:2023年09月26日 14:40:12 作者:攻城獅悠揚
這篇文章主要介紹了MySQL按時間拆分千萬級大表,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
1.創(chuàng)建存儲過程
#-----創(chuàng)建存儲過程
CREATE PROCEDURE ctrlcctrlv_table(var VARCHAR(20))
BEGIN
SET @param1 = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt FROM @param1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @param2 = concat('CREATE table ', var, ' like ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt1 FROM @param2;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END;2.創(chuàng)建EVEN事件
#-----創(chuàng)建存儲過程
CREATE PROCEDURE ctrlcctrlv_table(var VARCHAR(20))
BEGIN
SET @param1 = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt FROM @param1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @param2 = concat('CREATE table ', var, ' like ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt1 FROM @param2;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END;3.啟用EVEN
#-----創(chuàng)建存儲過程
CREATE PROCEDURE ctrlcctrlv_table(var VARCHAR(20))
BEGIN
SET @param1 = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt FROM @param1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @param2 = concat('CREATE table ', var, ' like ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt1 FROM @param2;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END;4.測試存儲過程
#--測試存儲過程執(zhí)行情況
call ctrlcctrlv_table("zong_biao"); 來點干貨在mysql里面測試一下
創(chuàng)建一張測試表
CREATE TABLE `test_cut_demo` ( `id` int NOT NULL AUTO_INCREMENT, `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `create_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `day` datetime DEFAULT NULL COMMENT '日期', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2997 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
添加一個循環(huán)插入的EVENT
#--創(chuàng)建循環(huán)測試插入數(shù)據(jù)
delimiter $$
create event event_insert_SECOND
on schedule every 2 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
COMMENT 'xiaowu create'
do
BEGIN
insert into new_cut.test_cut_demo(username,password,create_time,day) values("李四","tomcat",now(),curdate());
END $$
delimiter ;
#----紅色庫名,藍(lán)色表明添加事件啟動
alter event event_insert_SECOND on completion preserve enable;
查看數(shù)據(jù)庫表中是否開始循環(huán)插入數(shù)據(jù)

調(diào)用存儲過程測試是否可以進(jìn)行表切割
#--測試存儲過程執(zhí)行情況
call ctrlcctrlv_table("test_cut_demo"); 到此這篇關(guān)于MySQL按時間拆分千萬級大表的文章就介紹到這了,更多相關(guān)MySQL千萬級大表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL出現(xiàn)錯誤代碼:1055的三種解決方案(推薦!)
當(dāng)我們在查詢時使用group by語句,出現(xiàn)錯誤代碼:1055;執(zhí)行發(fā)生錯誤語句,本文給大家介紹了MySQL出現(xiàn)錯誤代碼:1055的三種解決方案,文中有詳細(xì)的代碼示例和圖文供大家參考,需要的朋友可以參考下2024-05-05
MySQL單表約束超詳細(xì)實戰(zhàn)用法(主鍵 / 非空 / 唯一 /&nbs
本文將聚焦 SQL 中的單表約束,詳細(xì)講解主鍵、非空、唯一、默認(rèn)約束的語法格式與實戰(zhàn)用法,結(jié)合案例幫你徹底掌握,讓數(shù)據(jù)更規(guī)范,感興趣的朋友跟隨小編一起看看吧2026-03-03

