【工具】MySQL 壓測工具之mydbtest
一 前言
本文介紹一款綠色免安裝版本的資料庫壓測利器--mydbtest(,由樓方鑫大牛編寫).該壓測軟體區別於sysbench ,tpcc 等常見壓測工具軟體,免安裝,上手快,而且可以針對業務sql做定製化壓測。
二 如何使用
2.1 隨機資料生成器
我們在配置檔案中指定隨機資料的型別,取值範圍 比如a int 10 30000 ,隨機生成從10-30000的整數,注意 a 必須是where 條件中使用的值,比如where id=:a:,語法
該工具支援7種型別
該軟體支援在同一個配置檔案中使用多種欄位型別。
2.2 配置檔案
配置檔案的格式如下
option
name yangyi_20160331
user username/password@hostname:port:database
loop N 迴圈次數
log 生成結果的log檔案,可以使用 %p 來為每個壓測程式指定一個log檔案
wait N 每次迴圈執行完之後(並不是每個sql執行的間隔) 等待多久微妙。預設值是0。
show N 每個多少秒顯示壓測的響應時間 預設是60s
tran [yes] 事務型,如果該引數設定為yes ,則 begin 裡面的 sql 都會在同一個事務中執行
commit [N] 每隔多少次loop 執行一次commit命令。如果配置了大量的測試資料,建議將該值設定的大一點。需要注意的是 commit引數只有在 tran 設定為yes 的時候 起作用。
time Specify how duration to be executed for the SQL statements, default value is
3600 seconds, you can specify “d1” for one day, “h1” for on hour, “m1” for one minute, and “s60” for 60 seconds.
declare
#隨機數
varname1 int 10 100000
varname2 char 1 30
[.......]
begin
##可以配置select ,insert,update,delete 語句,也可以配置 使用 {} 包含的資料庫語句,每個語句必須使用分號“;”隔開。
INSERT INTO <table name> (…) VALUES (:varname1, :varname2,…);
SELECT * FROM <table name> WHERE … > :varname1;
{ begin
update t_kc_center set col2=col2 – 1 where col1 = :id;
update t_kc_center set col2=col2 + 1 where col1 = :id + 1;
end;
}
end
一個具體的例子:
test.cnf
#該配置檔案表示 連線到資料庫,執行2000次查詢.
option
name mysql_test
loop 2000
user yang/yang@127.0.0.1:3308:test
declare
a int 10 30000
begin
select * from t_mytest where col1 = :a;
end
三 具體使用
root@rac3:~# >./mydbtest_linux64.bin --help
MYDBTEST: MySQL Database Test Utility , Release 1.0.1
(@) Copyright Lou Fangxin (AnySQL.net) 2012 - 2013, all rights reserved.
Usage: mysqldbtest keyword=value [keyword=value [...]]
Valid Keywords:
user = username/password@tnsname for source and target.
query = test case file.
degree = parallel degree for multiple threads test
root@rac3:~# >./mydbtest_linux64.bin query=test.cnf degree=1
MYDBTEST: MySQL Database Test Utility , Release 1.0.1
(@) Copyright Lou Fangxin (AnySQL.net) 2012 - 2013, all rights reserved.
2016-03-25 14:08:27 ======================== mysql_test ========================
2016-03-25 14:08:27 SQL01 exe=2000 fail=0 row=1105 ela=231 ms avg=115 us
2016-03-25 14:08:27 SQL01 1 ms exec= 1996, ela= 225 ms, avg= 113 us, pct= 99, 99
2016-03-25 14:08:27 SQL01 2 ms exec= 3, ela= 3 ms, avg= 1031 us, pct= 0, 99
2016-03-25 14:08:27 SQL01 3 ms exec= 1, ela= 2 ms, avg= 2481 us, pct= 0,100
2016-03-25 14:08:27 Total tran=2000=8333/s, qtps=2000=8333/s, ela=233 ms, avg=116 us
Summary: SQL01 exec=2000, rows=1105=55/e, avg=115 us
Summary: exec=2000/s, qtps=2000/s
壓測的時候,如果覺得這樣的報告不符合要求,可以配合 orzdba 來檢視資料庫的qps tps,並選取資料繪製成圖表。
本文介紹一款綠色免安裝版本的資料庫壓測利器--mydbtest(,由樓方鑫大牛編寫).該壓測軟體區別於sysbench ,tpcc 等常見壓測工具軟體,免安裝,上手快,而且可以針對業務sql做定製化壓測。
二 如何使用
2.1 隨機資料生成器
我們在配置檔案中指定隨機資料的型別,取值範圍 比如a int 10 30000 ,隨機生成從10-30000的整數,注意 a 必須是where 條件中使用的值,比如where id=:a:,語法
- varname VARTYPE minimum maximum
-
sequence 序列
-
int : i_value int min max
-
char : c_value char min_length max_length
-
float : f_value float min max
-
double : d_value double min max
-
date : create_time date -10 10 會產生十天之前和十天之後的隨機時間,格式如:2016-04-01
- timestamp : 用法和date 一樣,其格式為 YYYY-MM-DD HH24:MI:SS
2.2 配置檔案
配置檔案的格式如下
option
name yangyi_20160331
user username/password@hostname:port:database
loop N 迴圈次數
log 生成結果的log檔案,可以使用 %p 來為每個壓測程式指定一個log檔案
wait N 每次迴圈執行完之後(並不是每個sql執行的間隔) 等待多久微妙。預設值是0。
show N 每個多少秒顯示壓測的響應時間 預設是60s
tran [yes] 事務型,如果該引數設定為yes ,則 begin 裡面的 sql 都會在同一個事務中執行
commit [N] 每隔多少次loop 執行一次commit命令。如果配置了大量的測試資料,建議將該值設定的大一點。需要注意的是 commit引數只有在 tran 設定為yes 的時候 起作用。
time Specify how duration to be executed for the SQL statements, default value is
3600 seconds, you can specify “d1” for one day, “h1” for on hour, “m1” for one minute, and “s60” for 60 seconds.
declare
#隨機數
varname1 int 10 100000
varname2 char 1 30
[.......]
begin
##可以配置select ,insert,update,delete 語句,也可以配置 使用 {} 包含的資料庫語句,每個語句必須使用分號“;”隔開。
INSERT INTO <table name> (…) VALUES (:varname1, :varname2,…);
SELECT * FROM <table name> WHERE … > :varname1;
{ begin
update t_kc_center set col2=col2 – 1 where col1 = :id;
update t_kc_center set col2=col2 + 1 where col1 = :id + 1;
end;
}
end
一個具體的例子:
test.cnf
#該配置檔案表示 連線到資料庫,執行2000次查詢.
option
name mysql_test
loop 2000
user yang/yang@127.0.0.1:3308:test
declare
a int 10 30000
begin
select * from t_mytest where col1 = :a;
end
三 具體使用
root@rac3:~# >./mydbtest_linux64.bin --help
MYDBTEST: MySQL Database Test Utility , Release 1.0.1
(@) Copyright Lou Fangxin (AnySQL.net) 2012 - 2013, all rights reserved.
Usage: mysqldbtest keyword=value [keyword=value [...]]
Valid Keywords:
user = username/password@tnsname for source and target.
query = test case file.
degree = parallel degree for multiple threads test
root@rac3:~# >./mydbtest_linux64.bin query=test.cnf degree=1
MYDBTEST: MySQL Database Test Utility , Release 1.0.1
(@) Copyright Lou Fangxin (AnySQL.net) 2012 - 2013, all rights reserved.
2016-03-25 14:08:27 ======================== mysql_test ========================
2016-03-25 14:08:27 SQL01 exe=2000 fail=0 row=1105 ela=231 ms avg=115 us
2016-03-25 14:08:27 SQL01 1 ms exec= 1996, ela= 225 ms, avg= 113 us, pct= 99, 99
2016-03-25 14:08:27 SQL01 2 ms exec= 3, ela= 3 ms, avg= 1031 us, pct= 0, 99
2016-03-25 14:08:27 SQL01 3 ms exec= 1, ela= 2 ms, avg= 2481 us, pct= 0,100
2016-03-25 14:08:27 Total tran=2000=8333/s, qtps=2000=8333/s, ela=233 ms, avg=116 us
Summary: SQL01 exec=2000, rows=1105=55/e, avg=115 us
Summary: exec=2000/s, qtps=2000/s
壓測的時候,如果覺得這樣的報告不符合要求,可以配合 orzdba 來檢視資料庫的qps tps,並選取資料繪製成圖表。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2128819/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 壓測工具之Sysbench1.0(2_MySQL壓測)MySql
- mysql之 mysql資料庫壓力測試工具(mysqlslap)MySql資料庫
- Mysql 壓力測試工具sysbenchMySql
- 壓測工具之Sysbench(1_系統壓測)
- 壓力測試工具之FIO
- 壓力測試工具之mysqlslapMySql
- Nginx壓力測試工具之WebBenchNginxWeb
- MySQL基準壓力測試工具MySQLSlapMySql
- 壓測工具 wrk
- kafka壓測工具Kafka
- 【工具】基準測試工具之tpcc-mysqlMySql
- MySQL壓測工具mysqlslap的介紹與使用MySql
- Jmeter-壓測工具JMeter
- 壓力測試工具
- 效能壓測工具 —— wrk
- 壓測工具jemiter使用MIT
- 很好用的壓測工具 - Apache Bench工具Apache
- 壓測工具之JMeter之環境配置及執行JMeter
- mysql效能測試工具之sysbench薦MySql
- mysql效能測試工具之mysqlslap薦MySql
- mysql效能測試工具之tpcc-mysql薦MySql
- 壓縮工具效能測試
- [心得]Tsung壓測工具科普
- Webbench網站壓測工具Web網站
- 效能工具之Jmeter壓測Thrift RPC服務JMeterRPC
- 效能工具之Jmeter壓測Hprose RPC服務JMeterROSRPC
- Go 效能壓測工具之wrk介紹與使用Go
- 超實用壓力測試工具-ab工具
- MySQL 效能壓測工具,從入門到自定義測試項MySql
- centos7中mysql自帶壓測工具mysqlslap使用CentOSMySql
- MySQL 效能壓測工具-sysbench,從入門到自定義測試項MySql
- apache ab壓力測試工具-批次壓測指令碼Apache指令碼
- NoSQLBench壓測工具入門教程SQL
- 網站壓力測試工具網站
- 效能測試:主流壓測工具介紹
- Linux系統壓力測試工具(命令列工具)Linux命令列
- 10大主流壓力測試工具
- CentOS 下安裝 wrk 壓測工具CentOS