首先建立一個普通的數字表
create table Nums(w int unsigned not null primary key) engine=innodb; ##建立innoDB引擎的表Nums
delimiter // ##指明//爲分隔符
create procedure pCreateNums (n int unsigned) ##建立一個名字爲pCreateNums的存儲過程
begin
declare s int unsigned default 1;
truncate table Nums;
while s <= n do
begin
insert into Nums select s;
set s = s+1;
end;
end while;
end;
//
delimiter ; ##恢復;爲分隔符
call pCreatenums (200000); #向表Nums插入數據
下圖是我以作的試驗,查看插入100000條數據須要用多長時間
而後咱們將這個表Nums和存儲過程pCreateNums刪除,再創建一個相同名字的表和存儲過程。
create table Nums(w int unsigned not null primary key) engine=innodb;
delimiter //
create procedure pFastCreateNums (n int unsigned)
begin
declare s int unsigned default 1;
truncate table Nums;
while s*2 <= n do
begin
insert into Nums select w+s from Nums;
set s = s*2;
end;
end while;
end;
//
delimiter ;
call pFastCreateNums (200000);
下圖是試驗截圖
此次才用了0.08秒,是否是快不少