mysql壓力測(cè)試腳本實(shí)例
本文實(shí)例講述了mysql壓力測(cè)試的腳本,分享給大家供大家參考。具體如下:
創(chuàng)建表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 ;
創(chuàng)建表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 ;
工資級(jí)別表
(
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);
隨機(jī)產(chǎn)生字符串
定義一個(gè)新的命令結(jié)束符合
刪除自定的函數(shù)
這里我創(chuàng)建了一個(gè)函數(shù).
returns varchar(255)
begin
declare chars_str varchar(100) default
'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
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);
隨機(jī)產(chǎn)生部門編號(hào)
drop function rand_num $$
這里我們又自定了一個(gè)函數(shù)
returns int(5)
begin
declare i int default 0;
set i = floor(10+rand()*500);
return i;
end $$
delimiter ;
select rand_num();
向emp表中插入記錄(海量的數(shù)據(jù))
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 ;
調(diào)用剛剛寫好的函數(shù), 1800000條記錄,從100001號(hào)開始
向dept表中插入記錄
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 表插入數(shù)據(jù)
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));
until i = max_num
end repeat;
commit;
end $$
delimiter ;
#測(cè)試不需要了
#call insert_salgrade(10000,1000000);
希望本文所述對(duì)大家的MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。
相關(guān)文章
window系統(tǒng)mysql無(wú)法輸入和無(wú)法顯示中文的解決方法
這篇文章主要介紹了window系統(tǒng)mysql無(wú)法輸入和無(wú)法顯示中文的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
淺談MySQL8和MySQL5.7在自增計(jì)數(shù)上的區(qū)別
MySQL數(shù)據(jù)庫(kù)是一款非常流行的開源數(shù)據(jù)庫(kù),其版本升級(jí)迅速,在使用過(guò)程中也發(fā)現(xiàn)了不同版本之間存在著一些區(qū)別,本文主要介紹了MySQL8和MySQL5.7在自增計(jì)數(shù)上的區(qū)別,感興趣的可以了解一下2023-10-10
mysql?ON?DUPLICATE?KEY?UPDATE重復(fù)插入時(shí)更新方式
這篇文章主要介紹了mysql?ON?DUPLICATE?KEY?UPDATE重復(fù)插入時(shí)更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
MySQL循環(huán)查詢的實(shí)現(xiàn)示例
MySQL循環(huán)查詢是指在MySQL數(shù)據(jù)庫(kù)中使用循環(huán)結(jié)構(gòu)進(jìn)行數(shù)據(jù)查詢的一種方法,本文主要介紹了MySQL循環(huán)查詢的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
mysql5.7.18.zip免安裝版本配置教程(windows)
這篇文章主要為大家詳細(xì)介紹了mysql5.7.18.zip安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
MySQL?to_date()日期轉(zhuǎn)換的用法及注意事項(xiàng)
這篇文章主要介紹了MySQL?to_date()日期轉(zhuǎn)換的用法及注意事項(xiàng),TO_DATE()函數(shù)在不同數(shù)據(jù)庫(kù)系統(tǒng)中用于將字符串轉(zhuǎn)換為日期格式,其語(yǔ)法和參數(shù)可能有所不同,需要的朋友可以參考下2025-01-01
教你如何6秒鐘往MySQL插入100萬(wàn)條數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了教你如何6秒鐘往MySQL插入100萬(wàn)條數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

