国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Mysql官方性能測試工具mysqlslap的使用簡介

瀏覽:138日期:2023-10-02 16:28:43
目錄簡介使用介紹實際體驗小結簡介

MySQL 作為最流行的開源數據庫,在各個領域都有相當廣泛的應用,作為一個 MySQL DBA,經常會對數據庫進行一些性能測試來主動(或者是被動的)對業務壓力做一個評估,來判斷數據庫當前的負載以及最高的性能容量。

常見的性能測試工具有 sysbench 和 tpcc,這兩者都是非常優秀的壓測工具,但是都需要特殊的編譯或者安裝,并且需要一定的開發能力才能修改具體測試的語句。

mysqlslap 則是隨著 MySQL 安裝的時候就自動安裝好了,而且 mysqlslap 把很多的自定義測試的功能封裝到了外部,使用者只需要在外部提供 SQL 語句的腳本就可以自定義測試語句,使用起來會簡便一些。

使用介紹

mysqlslap 提供了非常多的參數來配置測試的項目的類型,這里僅摘選部分常用參數進行說明,詳細信息參考 mysqlslap 自身的幫助信息。

參數名

說明

login-path=#

新版本 MySQL 提供的登錄方式

-a, --auto-generate-sql

自動生成 SQL 語句

--auto-generate-sql-add-autoincrement

在自動生成的表中添加自增列

--auto-generate-sql-execute-number=#

測試中,執行 SQL 的總次數

--auto-generate-sql-guid-primary

生成基于 GUID 的主鍵

--auto-generate-sql-load-type=name

測試的負載模型,包括 mixed, update, write, key,read,默認是 mix

--auto-generate-sql-secondary-indexes=#

自動生成的表中,二級索引的數量

--auto-generate-sql-unique-query-number=#

測試中,使用唯一索引的查詢語句數量

--auto-generate-sql-unique-write-number=#

測試中,使用唯一索引的 DML 語句數量

--auto-generate-sql-write-number=#

測試中,每個線程執行的 insert 語句數量,默認為 100

--commit=#

測試中,每多少個語句執行一次 commit

-c, --concurrency=name

測試中,并發的線程數/客戶端數

--create=name

自定義建表語句,或者是 SQL 文件的地址

--create-schema=name

測試中,使用的數據庫名

--detach=#

測試中,每執行一定數量的語句后進行重連

-e, --engine=name

指定建表時的存儲引擎

-h, --host=name

指定測試實例的 host 地址

-u, --user=name

指定測試實例的用戶名

-p, --password=name

指定測試實例的密碼

-P, --port=#

指定測試實例的端口

-i, --iterations=#

指定測試重復的次數

--no-drop

指定測試完成后不刪除測試用的庫表

-x, --number-char-cols=name

指定測試表中 varchar 列的數量

-y, --number-int-cols=name

指定測試表中 int 列的數量

--number-of-queries=#

指定每個線程執行的 SQL 語句數量上限(不精確)

--only-print

類似于 dry run,輸出會進行的操作,但是不會真的執行

-F, --delimiter=name

使用文件中提供的 SQL 語句時,顯式指定語句之間的分隔符

--post-query=name

指定測試完成后,執行的查詢語句,或者是 SQL 語句的文件

--pre-query=name

指定測試開始前,執行的查詢語句,或者是 SQL 語句的文件

-q, --query=name

指定測試時,執行的查詢語句,或者是 SQL 語句的文件

實際體驗

這里對 mysqlslap 進行一次簡單的試用,目標實例使用騰訊云數據庫 MySQL,最簡單的測試示例如下:

root@VM-64-10-debian:~# mysqlslap --concurrency=100 --iterations 10 -a --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=1000 -h172.1.100.10 -uroot -pEnter password:BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.046 secondsMinimum number of seconds to run all queries: 0.042 secondsMaximum number of seconds to run all queries: 0.049 secondsNumber of clients running queries: 100Average number of queries per client: 10root@VM-64-10-debian:~#

該示例中使用的就是最簡單的測試模型,由 mysqlslap 自己生成所有的測試語句與建表語句。

如果要對不同并發下的性能做對比,則可以用這種方式進行測試:

root@VM-64-10-debian:~# mysqlslap --concurrency=100,200 --iterations 10 -a --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=1000 -h172.16.0.40 -uroot -pEnter password:BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.046 secondsMinimum number of seconds to run all queries: 0.045 secondsMaximum number of seconds to run all queries: 0.048 secondsNumber of clients running queries: 100Average number of queries per client: 10BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.037 secondsMinimum number of seconds to run all queries: 0.034 secondsMaximum number of seconds to run all queries: 0.052 secondsNumber of clients running queries: 200Average number of queries per client: 5root@VM-64-10-debian:~#

輸出的結果為時間,因此時間越小說明整體性能越好。

如果要自定義測試語句,則可以把 SQL 語句寫在文件里面,例如:

root@VM-64-10-debian:~# cat create.sqlCREATE TABLE a (b int);INSERT INTO a VALUES (23);root@VM-64-10-debian:~# cat query.sqlSELECT * FROM a;SELECT b FROM a;root@VM-64-10-debian:~#root@VM-64-10-debian:~# mysqlslap --concurrency=100,200 --query=query.sql --create=create.sql --delimiter=';' --engine=innodb --number-of-queries=1000 -h172.16.0.40 -uroot -pEnter password:BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.045 secondsMinimum number of seconds to run all queries: 0.045 secondsMaximum number of seconds to run all queries: 0.045 secondsNumber of clients running queries: 100Average number of queries per client: 10BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.023 secondsMinimum number of seconds to run all queries: 0.023 secondsMaximum number of seconds to run all queries: 0.023 secondsNumber of clients running queries: 200Average number of queries per client: 5root@VM-64-10-debian:~#小結

市面上可用的 MySQL 壓測工具非常多,各個工具都有優劣,多了解一些工具,然后根據實際需求選擇最合適的工具就能以最效率的方式完成需要的壓力測試。

以上就是Mysql官方性能測試工具mysqlslap的使用簡介的詳細內容,更多關于mysqlslap的使用的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 9cao在线精品免费 | 国产一二区 | 99久久99热精品免费观看国产 | 中国胖女人一级毛片aaaaa | 日本a级特黄三级三级三级 日本a一级片 | 亚洲视频自拍 | 欧美视频三级 | 搞黄网站免费观看 | 国产真真人女人特级毛片 | 国产成人精品一区二三区2022 | 精品国产一区二区三区在线 | 暖暖在线精品日本中文 | 伊人狠狠丁香婷婷综合色 | 欧美一区二区三区不卡片 | 免费无毒| 美女网站在线观看视频18 | 欧美成人免费观看bbb | 香蕉97碰碰视频免费 | 久久亚洲国产欧洲精品一 | 丝袜美腿在线不卡视频播放 | 久久综合色88 | 高颜值美女啪啪 | 最新精品国产 | 国产成人高清一区二区私人 | 在线观看国产精成人品 | 亚洲日韩精品欧美一区二区一 | 久久高清免费视频 | 特级片在线观看 | 亚洲欧美日韩国产综合高清 | 免费看欧美成人性色生活片 | 日韩欧美亚洲综合久久99e | 国产美女视频黄a视频全免费网站 | 男女视频免费在线观看 | 成人做爰网站免费看 | 麻豆影音| 国产成人免费在线 | se视频在线观看 | 欧洲女同互慰在线视频 | 国产欧美精品一区二区三区四区 | 久久免费视频6 | 在线观看国产区 |