溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

mysql數(shù)據(jù)庫(kù)壓力測(cè)試工具mysqlslap怎么用

發(fā)布時(shí)間:2021-11-06 09:37:40 來(lái)源:億速云 閱讀:126 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章將為大家詳細(xì)講解有關(guān)mysql數(shù)據(jù)庫(kù)壓力測(cè)試工具mysqlslap怎么用,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

mysqlslap是從MySQL的5.1.4版開(kāi)始就開(kāi)始官方提供的壓力測(cè)試工具。通過(guò)模擬多個(gè)并發(fā)客戶(hù)端并發(fā)訪(fǎng)問(wèn)MySQL來(lái)執(zhí)行壓力測(cè)試,同時(shí)提供了較詳細(xì)的SQL執(zhí)行數(shù)據(jù)性能報(bào)告,并且能很好的對(duì)比多個(gè)存儲(chǔ)引擎(MyISAM,InnoDB等)在相同環(huán)境下的相同并發(fā)壓力下的性能差別。

mysqlslap官方文檔: https://dev.mysql.com/doc/refman/5.6/en/mysqlslap.html

Table 4.14 mysqlslap Options

Format Description Introduced
--auto-generate-sql Generate SQL statements automatically when they are not supplied in files or using command options  
--auto-generate-sql-add-autoincrement Add AUTO_INCREMENT column to automatically generated tables  
--auto-generate-sql-execute-number Specify how many queries to generate automatically  
--auto-generate-sql-guid-primary Add a GUID-based primary key to automatically generated tables  
--auto-generate-sql-load-type Specify the test load type  
--auto-generate-sql-secondary-indexes Specify how many secondary indexes to add to automatically generated tables  
--auto-generate-sql-unique-query-number How many different queries to generate for automatic tests.  
--auto-generate-sql-unique-write-number How many different queries to generate for --auto-generate-sql-write-number  
--auto-generate-sql-write-number How many row inserts to perform on each thread  
--commit How many statements to execute before committing.  
--compress Compress all information sent between client and server  
--concurrency Number of clients to simulate when issuing the SELECT statement  
--create File or string containing the statement to use for creating the table  
--create-schema Schema in which to run the tests  
--csv Generate output in comma-separated values format  
--debug Write debugging log  
--debug-check Print debugging information when program exits  
--debug-info Print debugging information, memory, and CPU statistics when program exits  
--default-auth Authentication plugin to use 5.6.2
--defaults-extra-file Read named option file in addition to usual option files  
--defaults-file Read only named option file  
--defaults-group-suffix Option group suffix value  
--delimiter Delimiter to use in SQL statements  
--detach Detach (close and reopen) each connection after each N statements  
--enable-cleartext-plugin Enable cleartext authentication plugin 5.6.7
--engine Storage engine to use for creating the table  
--help Display help message and exit  
--host Connect to MySQL server on given host  
--iterations Number of times to run the tests  
--login-path Read login path options from .mylogin.cnf 5.6.6
--no-defaults Read no option files  
--no-drop Do not drop any schema created during the test run 5.6.3
--number-char-cols Number of VARCHAR columns to use if --auto-generate-sql is specified  
--number-int-cols Number of INT columns to use if --auto-generate-sql is specified  
--number-of-queries Limit each client to approximately this number of queries  
--only-print Do not connect to databases. mysqlslap only prints what it would have done  
--password Password to use when connecting to server  
--pipe On Windows, connect to server using named pipe  
--plugin-dir Directory where plugins are installed 5.6.2
--port TCP/IP port number to use for connection  
--post-query File or string containing the statement to execute after the tests have completed  
--post-system String to execute using system() after the tests have completed  
--pre-query File or string containing the statement to execute before running the tests  
--pre-system String to execute using system() before running the tests  
--print-defaults Print default options  
--protocol Connection protocol to use  
--query File or string containing the SELECT statement to use for retrieving data  
--secure-auth Do not send passwords to server in old (pre-4.1) format 5.6.17
--shared-memory-base-name The name of shared memory to use for shared-memory connections  
--silent Silent mode  
--socket For connections to localhost, the Unix socket file to use  
--ssl Enable secure connection  
--ssl-ca Path of file that contains list of trusted SSL CAs  
--ssl-capath Path of directory that contains trusted SSL CA certificates in PEM format  
--ssl-cert Path of file that contains X509 certificate in PEM format  
--ssl-cipher List of permitted ciphers to use for connection encryption  
--ssl-crl Path of file that contains certificate revocation lists 5.6.3
--ssl-crlpath Path of directory that contains certificate revocation list files 5.6.3
--ssl-key Path of file that contains X509 key in PEM format  
--ssl-mode Security state of connection to server 5.6.30
--ssl-verify-server-cert Verify server certificate Common Name value against host name used when connecting to server  
--user MySQL user name to use when connecting to server  
--verbose Verbose mode  
--version Display version information and exit  
參數(shù)參考表: --host=host_name, -h host_name  連接到的MySQL服務(wù)器的主機(jī)名(或IP地址),默認(rèn)為本機(jī)localhost
--user=user_name, -u user_name  連接MySQL服務(wù)時(shí)用的用戶(hù)名
--password[=password], -p[password]  連接MySQL服務(wù)時(shí)用的密碼
--create-schema 代表自定義的測(cè)試庫(kù)名稱(chēng),測(cè)試的schema,MySQL中schema也就是database。
(沒(méi)指定使用哪個(gè)數(shù)據(jù)庫(kù)時(shí),可能會(huì)遇到錯(cuò)誤mysqlslap: Error when connecting to server: 1049 Unknown database 'mysqlslap')
--query=name,-q 使用自定義腳本執(zhí)行測(cè)試(可以是SQL字符串或腳本),例如可以調(diào)用自定義的一個(gè)存儲(chǔ)過(guò)程或者sql語(yǔ)句來(lái)執(zhí)行測(cè)試。
--create 創(chuàng)建表所需的SQL(可以是SQL字符串或腳本) 
--concurrency=N, -c N 表示并發(fā)量,也就是模擬多少個(gè)客戶(hù)端同時(shí)執(zhí)行query??芍付ǘ鄠€(gè)值,以逗號(hào)或者--delimiter參數(shù)指定的值做為分隔符。例如:--concurrency=100,200,500(分別執(zhí)行100、200、500個(gè)并發(fā))。
--iterations=N, -i N   測(cè)試執(zhí)行的迭代次數(shù),代表要在不同的并發(fā)環(huán)境中,各自運(yùn)行測(cè)試多少次;多次運(yùn)行以便讓結(jié)果更加準(zhǔn)確。
--number-of-queries=N 總的測(cè)試查詢(xún)次數(shù)(并發(fā)客戶(hù)數(shù)×每客戶(hù)查詢(xún)次數(shù))
--engine=engine_name, -e engine_name 代表要測(cè)試的引擎,可以有多個(gè),用分隔符隔開(kāi)。例如:--engine=myisam,innodb,memory。
--auto-generate-sql, -a 自動(dòng)生成測(cè)試表和數(shù)據(jù),表示用mysqlslap工具自己生成的SQL腳本來(lái)測(cè)試并發(fā)壓力。
--auto-generate-sql-load-type=type 測(cè)試語(yǔ)句的類(lèi)型。代表要測(cè)試的環(huán)境是讀操作還是寫(xiě)操作還是兩者混合的。取值包括:read (scan tables), write (insert into tables), key (read primary keys), update (update primary keys), or mixed (half inserts, half scanning selects). 默認(rèn)值是:mixed.
--auto-generate-sql-add-auto-increment 代表對(duì)生成的表自動(dòng)添加auto_increment列,從5.1.18版本開(kāi)始支持。 
--number-char-cols=N, -x N 自動(dòng)生成的測(cè)試表中包含多少個(gè)字符類(lèi)型的列,默認(rèn)1
--number-int-cols=N, -y N 自動(dòng)生成的測(cè)試表中包含多少個(gè)數(shù)字類(lèi)型的列,默認(rèn)1
--commint=N 多少條DML后提交一次。
--compress, -C 如果服務(wù)器和客戶(hù)端支持都?jí)嚎s,則壓縮信息傳遞。
--only-print 只打印測(cè)試語(yǔ)句而不實(shí)際執(zhí)行。
--detach=N 執(zhí)行N條語(yǔ)句后斷開(kāi)重連。
--debug-info, -T 打印內(nèi)存和CPU的相關(guān)信息。
mysqlslap的運(yùn)行有如下3個(gè)步驟:
1. 創(chuàng)建schema、table、test data 等 (在MySQL中,schema就是database);
2. 運(yùn)行負(fù)載測(cè)試,可以使用多個(gè)并發(fā)客戶(hù)端連接;
3. 測(cè)試環(huán)境清理(刪除創(chuàng)建的數(shù)據(jù)、表等)。
案例:

[root@mysql ~]# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --auto-generate-sql-add-autoincrement --number-char-cols=10 --number-int-cols=5 -poracle
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 0.775 seconds
Minimum number of seconds to run all queries: 0.775 seconds
Maximum number of seconds to run all queries: 0.775 seconds
Number of clients running queries: 50
Average number of queries per client: 20

Benchmark
Average number of seconds to run all queries: 0.984 seconds
Minimum number of seconds to run all queries: 0.984 seconds
Maximum number of seconds to run all queries: 0.984 seconds
Number of clients running queries: 100
Average number of queries per client: 10

[root@mysql ~]# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --auto-generate-sql-add-autoincrement --number-char-cols=10 --number-int-cols=5 --engine=myisam,innodb -poracle
Warning: Using a password on the command line interface can be insecure.
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.117 seconds
Minimum number of seconds to run all queries: 0.117 seconds
Maximum number of seconds to run all queries: 0.117 seconds
Number of clients running queries: 50
Average number of queries per client: 20

Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.129 seconds
Minimum number of seconds to run all queries: 0.129 seconds
Maximum number of seconds to run all queries: 0.129 seconds
Number of clients running queries: 100
Average number of queries per client: 10

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 1.665 seconds
Minimum number of seconds to run all queries: 1.665 seconds
Maximum number of seconds to run all queries: 1.665 seconds
Number of clients running queries: 50
Average number of queries per client: 20

Benchmark
Running for engine innodb
Average number of seconds to run all queries: 1.480 seconds
Minimum number of seconds to run all queries: 1.480 seconds
Maximum number of seconds to run all queries: 1.480 seconds
Number of clients running queries: 100
Average number of queries per client: 10

關(guān)于“mysql數(shù)據(jù)庫(kù)壓力測(cè)試工具mysqlslap怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI