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

