本文目錄一覽:
如何在mysql中使數據自動按照日期分開成不同的表,每天一個表,並且按日期命名表
用mysql的表分區功能(邏輯上還是一個表,對程序來說是透明的),通過分區函數可實現自動分表。如果想實現根據數據每月或每周動態的再分區,可以寫一個存儲過程實現分區調整邏輯,最後寫一個mysql event(自動化作業)按周期調用這個存儲過程就行了。
MySQL 表數據分區,每10000條數據自動分區
ql代碼
#這裡使用HASH表分區,mysql會根據HASH字段來自動分配數據到不同的表分區,這種情況適用於沒有表分區規則但是有需要分表來進行查詢優化的情況。這裡根據id字段hash規則創建2個表分區
CREATE TABLE `creater_bak` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY HASH(id) PARTITIONS 2
創建完成後開始導入原表數據:
Sql代碼
insert into creater_bak select * from creater;
導入以後的新表數據就是分布在不同的2個表分區中了。
如果數據量非常大,覺得預設的表分區數量太少,那麼可以新增表分區,mysql會自動重新分配:
Sql代碼
#這裡新增8個表分區,加上新建表時候的2個,一共10個表分區了
ALTER TABLE `creater_bak` ADD PARTITION PA
如何做Mysql的自動分表
1.首先,開啟event功能。
SET GLOBAL event_scheduler = 1;
2.然後根據時間自動創建新表
原創文章,作者:LEDP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/146783.html