mysql分表之水平分割


一、背景

  1. 老大安排要對某張大容量表進行分割,根據年份分割成多張表。

二、水平分割

  1. 水平拆分是指數據表行的拆分,表的行數超過百萬行時,就會變慢,這時可以把一張的表的數據拆成多張表來存放。
  2. 定義規則分表后,表結構與原表相同,查詢性能會提高。
  3. ·····

三、步驟。

  1. 做好備份
  2. 根據年份創建分區表(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;
  3. 找出各年份的數據,並將其插入到分區表
    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';
  4. 記錄及備份


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM