mysql集群 儲存過程 mysql集群壓測

2021-10-17 23:44:19 字數 2509 閱讀 8236

mysql壓測

mysql自帶就有乙個叫mysqlslap的壓力測試工具,通過模擬多個併發客戶端訪問mysql來執行壓力測試,並且能很好的對比多個儲存引擎在相同環境下的併發壓力效能差別。通過mysqlslap –help可以獲得可用的選項,這裡列一些主要的引數,更詳細的說明參考官方手冊。如果是系統自帶或者使用rpm包安裝的mysql,安裝了mysql-client端的包就有mysqlslap這個工具。

測試環境介紹:

虛擬機器2臺2gmysql讀寫分離

使用語法如下:

# mysqlslap [options]

常用引數 [options] 詳細說明:

--auto-generate-sql, -a 自動生成測試表和資料,表示用mysqlslap工具自己生成的sql指令碼來測試併發壓力。

--auto-generate-sql-load-type=type 測試語句的型別。代表要測試的環境是讀操作還是寫操作還是兩者混合的。取值包括:read,key,write,update和mixed(預設)。

--auto-generate-sql-add-auto-increment 代表對生成的表自動新增auto_increment列,從5.1.18版本開始支援。

--number-char-cols=n, -x n 自動生成的測試表中包含多少個字元型別的列,預設1

--number-int-cols=n, -y n 自動生成的測試表中包含多少個數字型別的列,預設1

--number-of-queries=n 總的測試查詢次數(併發客戶數×每客戶查詢次數)

--query=name,-q 使用自定義指令碼執行測試,例如可以呼叫自定義的乙個儲存過程或者sql語句來執行測試。

--create-schema 代表自定義的測試庫名稱,測試的schema,mysql中schema也就是database。

--commint=n 多少條dml後提交一次。

--compress, -c 如果伺服器和客戶端支援都壓縮,則壓縮資訊傳遞。

--concurrency=n, -c n 表示併發量,也就是模擬多少個客戶端同時執行select。可指定多個值,以逗號或者--delimiter引數指定的值做為分隔符。例如:--concurrency=100,200,500。

--engine=engine_name, -e engine_name 代表要測試的引擎,可以有多個,用分隔符隔開。例如:--engines=myisam,innodb。

--iterations=n, -i n 測試執行的迭代次數,代表要在不同併發環境下,各自執行測試多少次。

--only-print 只列印測試語句而不實際執行。

--detach=n 執行n條語句後斷開重連。

--debug-info, -t 列印記憶體和cpu的相關資訊。

說明:測試的過程需要生成測試表,插入測試資料,這個mysqlslap可以自動生成,預設生成乙個mysqlslap的schema,如果已經存在則先刪除。可以用--only-print來列印實際的測試過程,整個測試完成後不會在資料庫中留下痕跡。

mysqlslap -a -c 150 -i 10 -uroot -proot1234測試mysql連線數150時

壓測併發數到200連線崩了

測試例項:

單執行緒測試。

# mysqlslap -a -uroot -proot1234

多執行緒測試,測試併發。

# mysqlslap -a -c 100 -uroot -proot1234

併發數達到100時,搜尋查詢時間在1s多

迭代測試。用於需要多次執行測試得到平均值。

# mysqlslap -a -i 10 -uroot -proot1234

測試同時不同的儲存引擎的效能進行對比:

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb -uroot -proot1234

執行一次測試,分別50和100個併發,執行1000次總查詢:

明顯發現innodb效能查詢較優

50和100個併發分別得到一次測試結果(benchmark),併發數越多,執行完所有查詢的時間越長。為了準確起見,可以多迭代測試幾次:

Mysq 儲存過程

drop procedure if exists xl 建立儲存過程 delimiter 轉譯字元 使用 代替 create procedure xl begin select from fd car report end delimiter 轉譯字元 使用 代替 call xl 呼叫儲存過程 de...

集群安裝mysql 集群rpm安裝MySQL

安裝mysql資料庫 b 安裝mysql源 yum localinstall mysql57 community release el7 8.noarch.rpm 若結尾出現complete 則說明mysql源安裝完成 c 檢測是否安裝完成 yum repolist enabled grep mys...

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...