分表資料遷移方案

2021-10-08 15:32:15 字數 1422 閱讀 4244

有乙個需求,一張表中有1億條資料,現在要分表處理。資料分離是個麻煩事。以下為本人的解決方案。效率還行。

-- 建立測試表

create table `user` (

`id` int(11) not null auto_increment,

`name` varchar(255) default null,

primary key (`id`)

) engine=innodb  default charset=utf8;

-- 測試資料

insert into `test`.`user` (`id`, `name`) values ('1', '1');

insert into `test`.`user` (`id`, `name`) values ('2', '2');

insert into `test`.`user` (`id`, `name`) values ('3', '3');

insert into `test`.`user` (`id`, `name`) values ('4', '4');

insert into `test`.`user` (`id`, `name`) values ('5', '5');

-- 分表1

create table `user_1` (

`id` int(11) not null auto_increment,

`name` varchar(255) default null,

primary key (`id`)

) engine=innodb  default charset=utf8;

-- 建立儲存過程

create  procedure `insertinit`()

begin

declare total int(11); -- 總迴圈次數

declare idx int(11); -- 當前迴圈

declare maxid int(11); -- 每次迴圈查詢條件的最大id

declare limitnum int(11); -- 分頁查詢的資料

set total = 2;

set idx = 0;

set maxid= 1;

set limitnum=1;

while idx <= total do

insert into user_1 select * from `user` u where u.id>maxid -- 分表條件

limit limitnum; -- 每次從最大id取對應的n條資料

select  max(id) into maxid from user_1; -- 獲取當前匯入後的maxid

set idx = idx+1;

end while;

end

MySQL分庫分表遷移方案

現在有乙個未分庫分表的系統,未來要分庫分表,如何設計才可以讓系統從未分庫分表動態切換到分庫分表上?你看看,你現在已經明白為啥要分庫分表了,你也知道常用的分庫分表中介軟體了,你也設計好你們如何分庫分表的方案了 水平拆分 垂直拆分 分表 那問題來了,你接下來該怎麼把你那個單庫單錶的系統給遷移到分庫分表上...

MongoDB資料遷移方案

mongodump,mongorestore mongodump 命令格式 mongodump h dbhost d dbname o dbdirectory h mongodb所在伺服器位址,例如127.0.0.1,也可以指定埠 127.0.0.1 8080 d 需要備份的資料庫名稱,例如 tes...

distcp資料遷移方案

資料遷移distcp方案 根據遷移的實際情況,由於資料量大 重要 迫切性,因此實施方案每一步都需嚴謹執行,並且當出錯時清楚缺少的資料和補救的辦法。大的步驟分為3步,即export distcp import。在export匯出資料時,以時間戳作為引數,如將三個月的資料為乙個單位匯出,出錯時,重複執行...