风哥教程

培训 . 交流 . 分享
Make progress together!

MySQL如何快速创建大量随机数据进行性能测试

[复制链接]
内容发布:luashin| 发布时间:2017-6-8 19:54:23
MySQL如何快速创建大量随机数据进行性能测试

思路:创建procedure,然后使用循环,不停insert数据。例如:
create procedure inst(n int)
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into xxx values(....);
until i=n  end repeat;
commit;
set autocommit = 1;
end/

当然,这样太死了,全部是固定数据,我们可以来创建function来返回些随机数据:
随机产生数字,范围1~3000(范围可以随意设定,我自身举个列子)
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/
创建完这些function后,我们就可以使用rn()和rs(n)来获取数据数据并insert入测试表了,例如:

create procedure inst(n int)
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into xxx values(rn(),rs(12),rs(7),....);
until i=n  end repeat;
commit;
set autocommit = 1;
end/



上一篇:MySQL 5.7多源复制详解
下一篇:MySQL压力测试工具简单教程--mysqlslap
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门文章教程

  • PostgreSQL数据库中文培训手册
  • Oracle OCP认证考试IZ0-053题库共712题数据
  • Navicat for MySQL最新版下载地址及注册码
  • MySQL5权威指南(第3版)PDF电子版下载
  • Oracle Database 12c 数据库100个新特性与
  • oracle 12c RAC 日志频繁切换 checkpoint n
快速回复 返回顶部 返回列表