天天看點

mysql 取模分表

取模分表,根據時間次元進行分表自定義的Hash

分表實作原理:利用sqlparser解析sql參數,根據參數修改相關的表名為實際表名。

分表後的資料複制,一般采用insert select語句将原有表的資料導入新的分表,或者直接copy原表的資料到分表中。比如根據id取模分四張表,分表後把原有資料複制示例如下。

insert into user1(id,name, extDO, hobbys, votes) select * from user where id mod 4 = 0

insert into user2(id,name, extDO, hobbys, votes) select * from user where id mod 4 = 1

insert into user3(id,name, extDO, hobbys, votes) select * from user where id mod 4 = 2

insert into user4(id,name, extDO, hobbys, votes) select * from user where id mod 4 = 3

插入主表的資料到分表資料中

INSERT INTO tb_member1(tb_member1.id,tb_member1.name,tb_member1.sex) 

   SELECT member.id,member.name,member.sex    FROM member where member.id%2=0 ;

INSERT INTO tb_member2(tb_member2.id,tb_member2.name,tb_member2.sex)    SELECT member.id,member.name,member.sex    FROM member where member.id%2=1 ;

INSERT INTO tb_member3(tb_member3.id,tb_member3.name,tb_member3.sex)    SELECT member.id,member.name,member.sex    FROM member where member.id%2=2 ;

INSERT INTO tb_member3(tb_member3.id,tb_member3.name,tb_member3.sex)    SELECT member.id,member.name,member.sex    FROM member where member.id%2=3 ;

     本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1906285,如需轉載請自行聯系原作者