Mysqlslap性能測試MySQL三種存儲引擎

測試環境:

操作系統:CentOS6.5_x64

Mysql版本:5.1.71

mysqlslap是設計來模擬多個客戶端負載MySQL服務器,並報告每個階段的時間診斷程序。

mysqlslap運行在三個階段:

1.創建模式,表,以及可選的存儲程序或數據,用於測試。這個階段使用單一客戶端連接。

2.運行負載測試。這個階段可以使用很多客戶端連接。

3.清理(斷開連接,如果指定刪除表)。這個階段使用單一客戶端連接。

Mysql數據庫默認最大連接數是100,一般生產環境是不夠的,在my.cnf [mysqld]下添加  max_connections=1024 增加到1024,重啓Mysql。

Mysql默認使用是MyISAM存儲引擎,如下查看:

222129818.png

[root@localhost ~]# mysqlslap --concurrency=100,200 --iterations=1 --auto-generate-sql --auto-generate-sql-load-type=mixed --number-int-cols=20 --number-char-cols=30 --engine=innodb --create-schema=test --number-of-queries=1024 --host=localhost --user=root --password=123.com --debug-info

參數說明:

--concurrency=          #併發連接數量(可逗號隔開),例如:concurrency=100,200

--engines=              #要測試的存儲引擎,逗號隔開;

--iterations=           #運行多少次後,得到結果;

--auto-generate-sql     #自動生成SQL腳本來測試;

--auto-generate-sql-load-type= #測試類型是read還是write,還是mixed(混合);

--number-of-queries=    #執行查詢的次數;

--number-int-cols=      #測試表int字段類型的數量;

--number-char-cols=     #測試表的char類型字段的數量;

--create-schema =test   #創建測試的數據庫;

--debug-info            #輸出CPU、內存等系統相關信息;

測試說明:模擬測試兩次讀寫併發,第一次100,第二次200,自動生成SQL腳本,測試表包含20個init字段,30個char字段,每次執行1024查詢請求。測試引擎分別是myisam,innodb,memory。

MyISAM測試

222145449.png

InnoDB測試

222153758.png

Memory測試

222203829.png

測試結果說明:

Myisam第一次100客戶端同時發起增查用1.913/s,第二次200客戶端同時發起增查用1.49/s

Innodb第一次100客戶端同時發起增查用2.94/s,第二次200客戶端同時發起增查用3.683/s

Memory第一次100客戶端同時發起增查用1.963/s,第二次200客戶端同時發起增查用1.599/s

由此可見MyISAM存儲引擎處理性能是最好的,也是最常用的,但不支持事務。

InonDB存儲引擎提供了事務型數據引(ACID),在事務型引擎裏使用最多的。具有事務回滾,系統修復等特點。

Memory存儲引擎數據都在內存中進行操作的,默認使用HASH索引,具有很高的插入、查詢處理效率,因爲數據存在內存中,當Mysql重啓或關閉機器這些數據都會消失。 在本次測試中未能體現其優勢。不支持事務。

上述數據僅供參考,根據本身業務需求選擇合適存儲引擎,需要注意的是服務器的性能不同直接影響到測試的結果,應多次測試,求平均值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章