一、背景 老大安排要對某張大容量表進行分割,根據年份分割成多張表。 二、水平分割 水平拆分是指數據表行的拆分,表的行數超過百萬行時,就會變慢,這時可以把一張的表的數據拆成多張表來存放。 定義規則分表後,表結構與原表相同,查詢性能會提高。 ····· 三、步驟。 做好備份 根據年份創建分區表(t_us ...
一、背景
- 老大安排要對某張大容量表進行分割,根據年份分割成多張表。
二、水平分割
- 水平拆分是指數據表行的拆分,表的行數超過百萬行時,就會變慢,這時可以把一張的表的數據拆成多張表來存放。
- 定義規則分表後,表結構與原表相同,查詢性能會提高。
- ·····
三、步驟。
- 做好備份
- 根據年份創建分區表(t_user_data_年份)
1 -- 創建和原表結構相同的分區表 2 create table t_user_data_2019 like t_sys_user; 3 create table t_user_data_2018 like t_sys_user; 4 create table t_user_data_2017 like t_sys_user; 5 create table t_user_data_2016 like t_sys_user;
- 找出各年份的數據,並將其插入到分區表
1 -- 找出各個年份的數據,並將其插入到分區表 2 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2017'; 3 INSERT INTO t_user_data_2017 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2017'; 4 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2018'; 5 INSERT INTO t_user_data_2018 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2018'; 6 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2019'; 7 INSERT INTO t_user_data_2019 select * from t_sys_user where DATE_FORMAT(create_time,'%Y') = '2019';
- 記錄及備份