隨機生成mysql測試表大量數據


有時候為了測試mysql性能,需要生產一張上萬,百萬,千萬的表,有如下方法可實現

 

 SET GLOBAL log_bin_trust_function_creators = 1;

create function rn() returns smallint begin declare res smallint default 0; set res=floor(1+rand()*3000) ; #這里1和3000的位置可以更改為你需要的范圍。 return res; end




create function rs(n int)
returns varchar(1024)
begin
declare chars char(52) default 'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
declare res varchar(1024) default '';
declare i int default 0;
repeat
set i = i + 1;
set res = concat(res,substring(chars,floor(1+rand()*52),1));
until i=n end repeat;
return res;
end


create procedure inst(n int)
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into jc_user_kw (user_id,kw_name,kw_price) values(10,rs(10),rn()); -----jc_user_kw 為表名,其他為列名
until i=n  end repeat;
commit;
set autocommit = 1;
end

call inst(10000)


免責聲明!

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



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