mysql壓力測試指令碼例項

2022-09-29 13:12:12 字數 3911 閱讀 8846

建立表dept

複製** **如下:

create table dept( /*部門表*/

deptno mediumint   unsigned  not null  default 0,

dname varchar(20)  not null  default "",

loc varchar(13) not null default ""

) engine=myisam default charset=utf8 ;

建立表emp雇員

複製** **如下:

create table emp

(empno  mediumint unsigned  not null  default 0,

ename varchar(20) not null default "",

job varchar(9) not null default "",

mgr mediumint unsigned not null default 0,

hiredate date not null,

sal decimal(7,2)  not null,

comm decimal(7,2) not null,

deptno mediumint unsigned not null default 0

)engine=myisam default charset=utf8 ;

工資級別表

複製** **如下:

create table salgrade

(grade mediumint unsigned not null default 0,

losal decimal(17,2)  not null,

hisal decimal(17,2)  not null

)engine=myisam default charset=utf8;

insert into salgrade values (1,700,1200);

insert into salgrade values (2,1201,1400);

insert into salgrade values (3,1401,2000);

insert into salgrade values (4,2001,3000);

insert into salgrade values (5,3001,9999);

隨機產生字串

定義乙個新的命令結束符合

複製** **如下:

delimiter $$

刪除自定的函式

複製** **如下:

drop  function rand_string $$

這裡我建立了乙個函式.

複製** **如下:

create function rand_string(n int)

returns varchar(255)

begin

declare chars_str varchar(100) default

'abcdefghijklmnopqrstuvwxyzabcdefjhiwww.cppcns.comjklmnopqrstuvwxyz';

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()*52),1));

set i = i + 1;

end while;

return return_str;

end $$

delimiter ;

select rand_string(6);

隨機產生部門編號

複製** **如下:

delimiter $$

drop  function rand_num $$

這裡我們又自定了乙個函式

複製** **如下:

create function rand_num( )

returns int(5)

begin

declare i int default 0;

set i = floor(10+rand()*500);

return i;

end $$

delimiter ;

select rand_num();

向emp表中插入記錄(海量的資料)

複製** **如下:

delimiter $$

drop procedure insert_emp $$

create procedure insert_emp(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 emp values ((start+i) ,rand_string(6),'salesman',0001,curdate(),2000,400,rand_num());

until i = max_num

end repeat;

commit;

end $$

delimiter ;

呼叫剛剛寫好的函式, 1800000條記錄,從100001號開始

複製程式設計客棧** **如下:

call insert_emp(100001,1800000);

向dept表中插入記錄

複製** **如下:

delimiter $$

drop procedure insert_dept $$

create procedure insert_dept(in start int(10),in max_num int(10))

begin

declare i int default 0;

set auto程式設計客棧commit = 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 $$

drop procedure insert_salgrade $$

create procedure insert_salgrade(in start int(10),in max_num int(10))

begin

declare i int default 0;

set autocommit = 0;

alter table emp disable keys; 

repeat

set i = i + 1;

insert into salgrade values ((start+i) ,(start+i),(start+i));

rmsvfyzt until i = max_num

end repeat;

commit;

end $$

delimiter ;

#測試不需要了

#call insert_sarmsvfyztlgrade(10000,1000000);

本文標題: mysql壓力測試指令碼例項

本文位址:

Mysql壓力測試shell指令碼

mysql壓力測試shell指令碼 mysql自帶了壓力測試工具mysqlslap,所以我們可以不用自己編寫程式來測試mysql讀取的壓力。壓力測試shell指令碼如下 www.2cto.com plain bin sh while true do mysqlslap concurrency 100...

mysql 壓力測試 golang 壓力測試

1.壓力測試 1.1.1.go怎麼寫測試用例 開發程式其中很重要的一點是測試,我們如何保證 的質量,如何保證每個函式是可執行,執行結果是正確的,又如何保證寫出來的 效能是好的,我們知道單元測試的重點在於發現程式設計或實現的邏輯錯誤,使問題及早暴露,便於問題的定位解決,而效能測試的重點在於發現程式設計...

並行壓力測試shell指令碼

記 本文自網上篇章改寫而成。主要目的是為了理解壓測工具執行的原理。指令碼主要實現的功能有以下幾點。bin bash 併發後台執行fun for wanggy 2012 01 25 note www.jquerycn.cn fun num fun函式後台執行次數 sql num 每個函式sql執行次數...