MySQL按時(shí)間拆分千萬級(jí)大表的實(shí)現(xiàn)代碼
1.創(chuàng)建存儲(chǔ)過程
#-----創(chuàng)建存儲(chǔ)過程
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)建存儲(chǔ)過程
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)建存儲(chǔ)過程
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.測試存儲(chǔ)過程
#--測試存儲(chǔ)過程執(zhí)行情況
call ctrlcctrlv_table("zong_biao"); 來點(diǎn)干貨在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;
添加一個(gè)循環(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)色表明添加事件啟動(dòng)
alter event event_insert_SECOND on completion preserve enable;
查看數(shù)據(jù)庫表中是否開始循環(huán)插入數(shù)據(jù)

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

