当我们需要对数据库进行压力测试时,要生成大量的随机字符串并插入到数据库中。
生成指定长度的随机字符串的函数
DELIMITER $$
create function rand_string (n int) returns varchar(255)
begin
declare chars_str varchar(100) default 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ123456789';
declare return_str varchar(255) default '';
declare i int default 0;
while (i < n) do
set return_str = concat(return_str,substring(chars_str,floor(1+rand()*61),1));
set i = i+1;
end while;
return return_str;
END $$
DELIMITER ;
往表中插入大量随机字符串的存储过程
delimiter $$$
create procedure adduser()
begin
declare i int default 0;
declare name varchar(20) default '';
set i=0;
start transaction;
while i<1000000 do
set name=rand_string(20);
insert into user values (name,name);
set i=i+1;
end while;
commit;
end
$$$
delimiter;
使用方法
将上述的函数和存储过程创建好,然后通过下述语句调用:
CALL adduser();
参考资料: