使用--auto-generate-sql參數(shù)表示用mysqlslap工具自己生成的SQL腳本來測試并發(fā)壓力
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,華池企業(yè)網(wǎng)站建設,華池品牌網(wǎng)站建設,網(wǎng)站定制,華池網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,華池網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
mysqlslap --auto-generate-sql -uroot -p123456
并發(fā)測試,使用–concurrency來模擬并發(fā)連接,連接數(shù)可以多個,用逗號隔開
mysqlslap --auto-generate-sql --concurrency=100 -uroot -p123456
mysqlslap --auto-generate-sql --concurrency=50,100 -uroot -p123456
使用--iterations模擬迭代測試,用于需要多次執(zhí)行測試得到平均值。
mysqlslap --auto-generate-sql --iterations=5 -uroot -p123456
使用--engine測試不同的存儲引擎的性能進行對比
mysqlslap --auto-generate-sql --concurrency=50,100 --iterations=5 --engine=myisam,innodb -uroot -p123456
--query=name,-q 指定自定義腳本執(zhí)行測試,例如可以調(diào)用自定義的一個存儲過程或者sql語句來執(zhí)行測試。--create-schema 指定自定義的測試數(shù)據(jù)庫名稱,
mysqlslap --auto-generate-sql --concurrency=50,100 --create-schema="landclash" --query="call landclash.sp_player_getname(34);" --number-of-queries=5000 -uroot -p123456
1、mysqlslap
安裝:簡單,裝了mysql就有了
作用:模擬并發(fā)測試數(shù)據(jù)庫性能。
優(yōu)點:簡單,容易使用。
不足:不能指定生成的數(shù)據(jù)規(guī)模,測試過程不清楚針對十萬級還是百萬級數(shù)據(jù)做的測試,感覺不太適合做綜合測試,比較適合針對既有數(shù)據(jù)庫,對單個sql進行優(yōu)化的測試。
使用方法:
可以使用mysqlslap --help來顯示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my點吸煙 f /etc/my點吸煙 f ~/.my點吸煙 f
--concurrency代表并發(fā)數(shù)量,多個可以用逗號隔開,concurrency=10,50,100, 并發(fā)連接線程數(shù)分別是10、50、100個并發(fā)。
--engines代表要測試的引擎,可以有多個,用分隔符隔開。
--iterations代表要運行這些測試多少次。
--auto-generate-sql 代表用系統(tǒng)自己生成的SQL腳本來測試。
--auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運行多少次查詢。每個客戶運行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來計算。
--debug-info 代表要額外輸出CPU以及內(nèi)存的相關信息。
--number-int-cols :創(chuàng)建測試表的 int 型字段數(shù)量
--auto-generate-sql-add-autoincrement : 代表對生成的表自動添加auto_increment列,從5.1.18版本開始
--number-char-cols 創(chuàng)建測試表的 char 型字段數(shù)量。
--create-schema 測試的schema,MySQL中schema也就是database。
--query 使用自定義腳本執(zhí)行測試,例如可以調(diào)用自定義的一個存儲過程或者sql語句來執(zhí)行測試。
--only-print 如果只想打印看看SQL語句是什么,可以用這個選項。
mysqlslap -umysql -p123 --concurrency=100 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam --number-of-queries=10 --debug-info
或:
指定數(shù)據(jù)庫和sql語句:
mysqlslap -h192.168.3.18 -P4040 --concurrency=100 --iterations=1 --create-schema='test' --query='select * from test;' --number-of-queries=10 --debug-info -umysql -p123
要是看到底做了什么可以加上:--only-print
Benchmark
Average number of seconds to run all queries: 25.225 seconds
Minimum number of seconds to run all queries: 25.225 seconds
Maximum number of seconds to run all queries: 25.225 seconds
Number of clients running queries: 100
Average number of queries per client: 0
以上表明100個客戶端同時運行要25秒
2、sysbench
安裝:
可以從 下載
tar zxf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
./autogen.sh
./configure make make install
strip /usr/local/bin/sysbench
安裝時候可能會報錯,后來baidu發(fā)現(xiàn)個好文 怕以后找不到,也貼過來吧
1.如果mysql不是默認路徑安裝,那么需要通過指定--with-mysql-includes和--with-mysql-libs參數(shù)來加載mysql安裝路徑
2.如果報錯:
../libtool: line 838: X--tag=CC: command not found
../libtool: line 871: libtool: ignoring unknown tag : command not found
../libtool: line 838: X--mode=link: command not found
../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1005: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 2231: X-g: command not found
../libtool: line 2231: X-O2: command not found
那么執(zhí)行下根目錄的:autogen.sh文件,然后重新configure make make install
3.如果報錯:
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
那么執(zhí)行下:
n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/
4.如果執(zhí)行autogen.sh時,報如下錯誤:
./autogen.sh: line 3: aclocal: command not found
那么需要安裝一個軟件:
yum install automake
然后需要增加一個參數(shù):查找: AC_PROG_LIBTOOL 將其注釋,然后增加AC_PROG_RANLIB
作用:模擬并發(fā),可以執(zhí)行CPU/內(nèi)存/線程/IO/數(shù)據(jù)庫等方面的性能測試。數(shù)據(jù)庫目前支持MySQL/Oracle/PostgreSQL
優(yōu)點:可以指定測試數(shù)據(jù)的規(guī)模,可以單獨測試讀、寫的性能,也可以測試讀寫混合的性能。
不足:測試的時候,由于網(wǎng)絡原因,測試的非常慢,但是最終給的結(jié)果卻很好,并發(fā)支持很高,所以給我的感覺是并不太準確。當然也可能我沒搞明白原理
使用方法:
準備數(shù)據(jù)
sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=400000 --mysql-db=dbtest2 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd prepare
執(zhí)行測試
sysbench --num-threads=100 --max-requests=4000 --test=oltp --mysql-table-engine=innodb --oltp-table-size=400000 --mysql-db=dbtest1 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 4000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 56014
write: 20005
other: 8002
total: 84021
transactions: 4001 (259.14 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 76019 (4923.75 per sec.)
other operations: 8002 (518.29 per sec.)
Test execution summary:
total time: 15.4393s
total number of events: 4001
total time taken by event execution: 1504.7744
per-request statistics:
min: 33.45ms
avg: 376.10ms
max: 861.53ms
approx. 95 percentile: 505.65ms
Threads fairness:
events (avg/stddev): 40.0100/0.67
execution time (avg/stddev): 15.0477/0.22
3、tpcc-mysql
安裝:
如果從原網(wǎng)站上下載源碼比較麻煩,需要工具、注冊、生成證書等。這里提供一個下載包
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然后就會在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:測試mysql數(shù)據(jù)庫的整體性能
優(yōu)點:符合tpcc標準,有標準的方法,模擬真實的交易活動,結(jié)果比較可靠。
不足:不能單獨測試讀或者寫的性能,對于一些以查詢?yōu)橹骰蛘咧粚懙膽?,就沒有這么大的意義了。
使用方法:
加載數(shù)據(jù)
創(chuàng)建庫
mysqlcreate database tpcc10;
創(chuàng)建表:
shellmysql tpcc10 create_table.sql
添加外鍵:
shellmysql tpcc10 add_fkey_idx.sql
加載數(shù)據(jù):
1、單進程加載:
shell./tpcc_load 192.168.11.172 tpcc10 root pwd 300
|主機||數(shù)據(jù)庫||用戶||密碼||warehouse|
2、并發(fā)加載:(推薦,但需要修改一下)
shell./load.sh tpcc300 300
|數(shù)據(jù)庫||warehouse|
3、測試
./tpcc_start -h192.168.11.172 -d tpcc -u root -p 'pwd' -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_2013522.txt
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '192.168.11.172'
option d with value 'tpcc'
option u with value 'root'
option p with value 'pwd'
option w with value '1'
option c with value '100'
option r with value '120'
option l with value '60'
option i with value '10'
option f with value '/mnt/hgfs/mysql/tpcc100_2013522.txt'
Parameters
[server]: 192.168.11.172
[port]: 3306
[DBname]: tpcc
[user]: root
[pass]: pwd
[warehouse]: 1
[connection]: 100
[rampup]: 120 (sec.)
[measure]: 60 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
命令行:
net
start
mysql
如果能啟動,那說明安裝成功了。
如果想查詢默認的數(shù)據(jù)庫,你可以用mysqlfont,或者直接命令行操作
進入安裝目錄下的bin文件夾,或者配置好環(huán)境變量,然后
mysql
-uroot
-p
接著輸入密碼!~
ok!~
PHP MySQL Linux現(xiàn)在已逐漸成為小型web服務器的一種經(jīng)典組合。在Windows環(huán)境下構筑和調(diào)試MySQL數(shù)據(jù)庫是許多網(wǎng)站研發(fā)者的一種最好選擇。本人在Windows98環(huán)境下初學MySQL,現(xiàn)將學習過程和經(jīng)驗總結(jié)出來供大家參考。
1、下載mysql-3.23.35-win.zip并解壓;
2、運行setup.exe;選擇d:mysql,"tyical install"
3、啟動mysql,有如下方法:方法一:使用winmysqladmin
1)、進入d::mysqlbin目錄,運行winmysqladmin.exe,在屏幕右下角的任務欄內(nèi)會有一個帶紅色的圖符
2)、鼠標左鍵點擊該圖符,選擇“show me”,出現(xiàn)“WinMySQLAdmin”操作界面;首次運行時會中間會出現(xiàn)一個對話框需要輸入并配置您的用戶名和口令
3)、選擇“My.INI setup”
4)、在“mysqld file”中選擇“mysqld-opt”(win9x)或“mysqld-nt”(winNT)
5)、選擇“Pick-up or Edit my.ini values”能夠在右邊窗口內(nèi)對您的my.ini文檔進行編輯
6)、選擇“Save Modification”保存您的my.ini文檔
7)、假如您想快速使用winmysqladmin(開機時自動運行),選擇“Create ShortCut on Start Menu”
8)、測試:
進入DOS界面;
在d:mysqlbin目錄下運行mysql,進入mysql交互操作界面
輸入show databases并回車,屏幕顯示出當前已有的兩個數(shù)據(jù)庫mysql和test方法二:不使用winmysqladmin
1)、在DOS窗口下,進入d:/mysql/bin目錄
2)、win9X下)運行:mysqld在NT下運行:
mysqld-nt --standalone
3)、此后,mysql在后臺運行
4)、測試mysql:(在d:/mysql/bin目錄下)
a)、mysqlshow 正常時顯示已有的兩個數(shù)據(jù)庫mysql和test
b)、mysqlshow -u root mysql 正常時顯示數(shù)據(jù)庫mysql里的五個表:columns_priv,db,host,tables_priv,user
c)、mysqladmin version status proc 顯示版本號、狀態(tài)、進程信息等
d)、mysql test 進入mysql操作界面,當前數(shù)據(jù)庫為test
4、至此,MySQL已成功安裝,接著能夠熟悉MySQL的常用命令并創(chuàng)建自己的數(shù)據(jù)庫了。