欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年05月21日 10:37:58   作者:王文安@DBA  
mysqlslap隨著MySQL安裝的時(shí)候就自動(dòng)安裝好了,而且 mysqlslap 把很多的自定義測試的功能封裝到了外部,使用者只需要在外部提供 SQL 語句的腳本就可以自定義測試語句,本文將簡單介紹該工具的使用

簡介

MySQL 作為最流行的開源數(shù)據(jù)庫,在各個(gè)領(lǐng)域都有相當(dāng)廣泛的應(yīng)用,作為一個(gè) MySQL DBA,經(jīng)常會(huì)對(duì)數(shù)據(jù)庫進(jìn)行一些性能測試來主動(dòng)(或者是被動(dòng)的)對(duì)業(yè)務(wù)壓力做一個(gè)評(píng)估,來判斷數(shù)據(jù)庫當(dāng)前的負(fù)載以及最高的性能容量。

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

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

使用介紹

mysqlslap 提供了非常多的參數(shù)來配置測試的項(xiàng)目的類型,這里僅摘選部分常用參數(shù)進(jìn)行說明,詳細(xì)信息參考 mysqlslap 自身的幫助信息。

參數(shù)名

說明

login-path=#

新版本 MySQL 提供的登錄方式

-a, --auto-generate-sql

自動(dòng)生成 SQL 語句

--auto-generate-sql-add-autoincrement

在自動(dòng)生成的表中添加自增列

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

測試中,執(zhí)行 SQL 的總次數(shù)

--auto-generate-sql-guid-primary

生成基于 GUID 的主鍵

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

測試的負(fù)載模型,包括 mixed, update, write, key,read,默認(rèn)是 mix

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

自動(dòng)生成的表中,二級(jí)索引的數(shù)量

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

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

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

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

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

測試中,每個(gè)線程執(zhí)行的 insert 語句數(shù)量,默認(rèn)為 100

--commit=#

測試中,每多少個(gè)語句執(zhí)行一次 commit

-c, --concurrency=name

測試中,并發(fā)的線程數(shù)/客戶端數(shù)

--create=name

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

--create-schema=name

測試中,使用的數(shù)據(jù)庫名

--detach=#

測試中,每執(zhí)行一定數(shù)量的語句后進(jìn)行重連

-e, --engine=name

指定建表時(shí)的存儲(chǔ)引擎

-h, --host=name

指定測試實(shí)例的 host 地址

-u, --user=name

指定測試實(shí)例的用戶名

-p, --password=name

指定測試實(shí)例的密碼

-P, --port=#

指定測試實(shí)例的端口

-i, --iterations=#

指定測試重復(fù)的次數(shù)

--no-drop

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

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

指定測試表中 varchar 列的數(shù)量

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

指定測試表中 int 列的數(shù)量

--number-of-queries=#

指定每個(gè)線程執(zhí)行的 SQL 語句數(shù)量上限(不精確)

--only-print

類似于 dry run,輸出會(huì)進(jìn)行的操作,但是不會(huì)真的執(zhí)行

-F, --delimiter=name

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

--post-query=name

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

--pre-query=name

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

-q, --query=name

指定測試時(shí),執(zhí)行的查詢語句,或者是 SQL 語句的文件

實(shí)際體驗(yàn)

這里對(duì) mysqlslap 進(jìn)行一次簡單的試用,目標(biāo)實(shí)例使用騰訊云數(shù)據(jù)庫 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 -p
Enter password:
Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.046 seconds
	Minimum number of seconds to run all queries: 0.042 seconds
	Maximum number of seconds to run all queries: 0.049 seconds
	Number of clients running queries: 100
	Average number of queries per client: 10

root@VM-64-10-debian:~#

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

如果要對(duì)不同并發(fā)下的性能做對(duì)比,則可以用這種方式進(jìn)行測試:

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 -p
Enter password:
Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.046 seconds
	Minimum number of seconds to run all queries: 0.045 seconds
	Maximum number of seconds to run all queries: 0.048 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: 0.037 seconds
	Minimum number of seconds to run all queries: 0.034 seconds
	Maximum number of seconds to run all queries: 0.052 seconds
	Number of clients running queries: 200
	Average number of queries per client: 5

root@VM-64-10-debian:~#

輸出的結(jié)果為時(shí)間,因此時(shí)間越小說明整體性能越好。

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

root@VM-64-10-debian:~# cat create.sql
CREATE TABLE a (b int);INSERT INTO a VALUES (23);
root@VM-64-10-debian:~# cat query.sql
SELECT * 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 -p
Enter password:
Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.045 seconds
	Minimum number of seconds to run all queries: 0.045 seconds
	Maximum number of seconds to run all queries: 0.045 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: 0.023 seconds
	Minimum number of seconds to run all queries: 0.023 seconds
	Maximum number of seconds to run all queries: 0.023 seconds
	Number of clients running queries: 200
	Average number of queries per client: 5

root@VM-64-10-debian:~#

小結(jié)

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

以上就是Mysql官方性能測試工具mysqlslap的使用簡介的詳細(xì)內(nèi)容,更多關(guān)于mysqlslap的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

  • MySQL查看與修改字符集的方法實(shí)例教程

    MySQL查看與修改字符集的方法實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于MySQL查看與修改字符集的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • MySQL如何生成唯一的server-id

    MySQL如何生成唯一的server-id

    這篇文章主要給大家介紹了關(guān)于MySQL如何生成唯一的server-id的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)

    SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)

    這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • MySQL 回表,覆蓋索引,索引下推

    MySQL 回表,覆蓋索引,索引下推

    這篇文章主要介紹了MySQL 回表,覆蓋索引,索引下推,就是我們需要查詢的數(shù)據(jù)都在二級(jí)索引樹中,直接返回這種情況就叫做覆蓋索引
    2022-07-07
  • 對(duì)比MySQL中int、char以及varchar的性能

    對(duì)比MySQL中int、char以及varchar的性能

    在本篇文章中我們給大家分享了關(guān)于MySQL中int、char以及varchar的性能對(duì)比的相關(guān)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2018-10-10
  • MySQL 權(quán)限控制詳解

    MySQL 權(quán)限控制詳解

    這篇文章主要介紹了MySQL 權(quán)限控制詳解的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • Win10下免安裝版MySQL5.7的安裝和配置教程詳解

    Win10下免安裝版MySQL5.7的安裝和配置教程詳解

    這篇文章主要介紹了Win10下免安裝版MySQL5.7的安裝和配置教程詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • 如何使用mysql語句進(jìn)行多表聯(lián)查(以三個(gè)表為例)

    如何使用mysql語句進(jìn)行多表聯(lián)查(以三個(gè)表為例)

    這篇文章主要介紹了如何使用mysql語句進(jìn)行多表聯(lián)查(以三個(gè)表為例),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 最新評(píng)論