• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql压力测试脚本实例

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

本文实例讲述了mysql压力测试的脚本,分享给大家供大家参考。具体如下: 创建表DEPT CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, dname VARCHAR(20) NOT NULL DEFAULT “”, loc VARCHAR(13) NOT NULL DEFAULT “” ) ENGINE=

本文实例讲述了mysql压力测试的脚本,分享给大家供大家参考。具体如下:

创建表DEPT

CREATE TABLE dept( /*部门表*/<br />deptno MEDIUMINT   UNSIGNED  NOT NULL  DEFAULT 0,<br />dname VARCHAR(20)  NOT NULL  DEFAULT "",<br />loc VARCHAR(13) NOT NULL DEFAULT ""<br />) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

创建表EMP雇员

CREATE TABLE emp<br />(empno  MEDIUMINT UNSIGNED  NOT NULL  DEFAULT 0,<br />ename VARCHAR(20) NOT NULL DEFAULT "",<br />job VARCHAR(9) NOT NULL DEFAULT "",<br />mgr MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,<br />hiredate DATE NOT NULL,<br />sal DECIMAL(7,2)  NOT NULL,<br />comm DECIMAL(7,2) NOT NULL,<br />deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0<br />)ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

工资级别表

CREATE TABLE salgrade<br />(<br />grade MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,<br />losal DECIMAL(17,2)  NOT NULL,<br />hisal DECIMAL(17,2)  NOT NULL<br />)ENGINE=MyISAM DEFAULT CHARSET=utf8;<br />INSERT INT<strong>本文来源gao@daima#com搞(%代@#码@网2</strong>O salgrade VALUES (1,700,1200);<br />INSERT INTO salgrade VALUES (2,1201,1400);<br />INSERT INTO salgrade VALUES (3,1401,2000);<br />INSERT INTO salgrade VALUES (4,2001,3000);<br />INSERT INTO salgrade VALUES (5,3001,9999);

随机产生字符串
定义一个新的命令结束符合

delimiter $$

删除自定的函数

drop  function rand_string $$

这里我创建了一个函数.

create function rand_string(n INT)<br />returns varchar(255)<br />begin <br /> declare chars_str varchar(100) default<br />   'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';<br /> declare return_str varchar(255) default '';<br /> declare i int default 0;<br /> while i < n do <br />   set return_str =concat(return_str,substring(chars_str,floor(1+rand()*52),1));<br />   set i = i + 1;<br />   end while;<br />  return return_str;<br />  end $$

delimiter ;
select rand_string(6);

随机产生部门编号

delimiter $$<br />drop  function rand_num $$

这里我们又自定了一个函数

create function rand_num( )<br />returns int(5)<br />begin <br /> declare i int default 0;<br /> set i = floor(10+rand()*500);<br />return i;<br />  end $$

delimiter ;
select rand_num();

向emp表中插入记录(海量的数据)

delimiter $$<br />drop procedure insert_emp $$<br /> <br />create procedure insert_emp(in start int(10),in max_num int(10))<br />begin<br />declare i int default 0; <br /> set autocommit = 0;  <br /> repeat<br /> set i = i + 1;<br /> insert into emp values ((start+i) ,rand_string(6),'SALESMAN',0001,curdate(),2000,400,rand_num());<br />  until i = max_num<br /> end repeat;<br />   commit;<br /> end $$<br />delimiter ;

调用刚刚写好的函数, 1800000条记录,从100001号开始

call insert_emp(100001,1800000);

向dept表中插入记录

delimiter $$<br />drop procedure insert_dept $$

create procedure insert_dept(in start int(10),in max_num int(10))
begin
declare i int default 0;
set autocommit = 0;
repeat
set i = i + 1;
insert into dept values ((start+i) ,rand_string(10),rand_string(8));
until i = max_num
end repeat;
commit;
end $$

delimiter ;
call insert_dept(100,10);

向salgrade 表插入数据

delimiter $$<br />drop procedure insert_salgrade $$<br />create procedure insert_salgrade(in start int(10),in max_num int(10))<br />begin<br />declare i int default 0; <br /> set autocommit = 0;<br /> ALTER TABLE emp DISABLE KEYS;  <br /> repeat<br /> set i = i + 1;<br /> insert into salgrade values ((start+i) ,(start+i),(start+i));<br />  until i = max_num<br /> end repeat;<br />   commit;<br /> end $$<br />delimiter ;<br />#测试不需要了<br />#call insert_salgrade(10000,1000000);

希望本文所述对大家的MySQL数据库程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql压力测试脚本实例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址