作業系統:linux as release 4,核心2.6.9-42.elsmp #1 smp
cpu:intel(r) xeon(tm) cpu 3.00ghz,4核
記憶體:1g,主要執行mysql服務
硬碟:cciss 37g
檔案系統:ext3,支援大檔案
mysql:mysql-5.0.51a
網絡卡:100m
網路環境:100m交換區域網
測試方法
資料規模分為1萬條、10萬條、100萬條和1000萬條記錄級別。
在每種資料規模下分別執行2000次隨機查詢,這樣可以防止資料庫直接從快取中返回查詢結果,更加接近真實的查詢情況。以系統時間為隨機種子,在現有的記錄範圍內隨機執行查詢操作。
查詢型別分為:單錶select、雙表select、insert、單錶delete和雙表delete。
因為myisam和innodb是mysql使用最多的兩種引擎,也是我們公司目前使用最頻繁的引擎,因此分別做對比測試有一定的參考價值。
每個執行條目都為單次查詢的平均執行時間,單位為微妙。如果要看整體執行時間,則乘以2000即可。
由於指令碼插入資料很慢,採用mysql客戶端工具測試效率很低且不能保證足夠的隨機性,所以插入資料和測試效能都是自己編寫相應的程式來完成。
開啟二進位制更新日誌。
測試記錄
測試資料
myisam引擎跨主機查詢操作平均執行時間(單位:微秒) 專案記錄數
單錶select
雙表select
insert
update
單錶delete
雙表delete
1萬條358
4841188
269298
46410萬條
375505
1227
283322
521100萬條
3174
5293
1242
4142
7981
17212
1000萬條
12302
19920
1261
12355
20449
39890
myisam引擎本地查詢操作平均執行時間(單位:微秒) 專案記錄數
單錶select
雙表select
insert
update
單錶delete
雙表delete
1萬條178
247694
141170
34510萬條
195271
705157
186585
100萬條
3055
5164
7464308
12373
22533
1000萬條
8665
15259
80311033
17224
35485
發現對innodb的配置引數進行優化後,更新和插入速度可以提高10倍多。
innodb引擎跨主機單次查詢操作平均執行時間(單位:微秒) 專案記錄數
單錶select
雙表select
insert
update
單錶delete
雙表delete
1萬條387
5211215
327293
51910萬條
399567
1231
338322
663100萬條
2255
4950
1320
1988
3832
9550
1000萬條
10556
18702
1362
10823
19078
36666
innodb引擎本地單次查詢操作平均執行時間(單位:微秒) 專案記錄數
單錶select
雙表select
insert
update
單錶delete
雙表delete
1萬條180
264709
165156
31210萬條
226340
754204
205590
100萬條
1853
4530
7461782
2771
9816
1000萬條
9275
17609
8896941
14727
36282
效能比較
單錶select
雙表select
insert操作
update操作
單錶delete
雙表delete
效能分析
1、可以看出在mysql 5.0裡面,myisam和innodb儲存引擎效能差別並不是很大,與官方的說法基本接近。
2、1萬和10萬的select、delete或update操作都很快,1毫秒以下。
3、insert操作效能降低較慢,受資料規模影響相對較小。
4、效能從10萬條規模公升到100萬條時降低非常明顯,從100萬到1000萬效能降低更明顯。
5、innodb引擎在預設引數配置下效能較差。
innodb_buffer_pool_size = 600m
innodb_additional_mem_pool_size = 64m
# set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 256m
#innodb_log_buffer_size = 8m
innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
innodb_file_per_table
其中innodb_flush_log_at_trx_commit和innodb_file_per_table對i/o效能影響最大。
7、my-large.cnf等檔案只是優化myisam引擎的引數,這一點在優化配置時特別要注意。
8、在資料規模較大(100萬條以上),innodb引擎效能有相對優勢。
9、在資料規模較小(10萬條以下),myisam引擎效能有相對優勢。
另外乙個重要影響引數是行長度。總之單錶規模越小越好。
MySQL效能測試分析
分類 資料庫開發與應用 2009 10 16 03 07 1824人閱讀收藏 舉報 目錄 測試環境 測試方法 測試記錄 測試資料 效能比較 效能分析 目錄 測試環境 測試方法 測試記錄 測試資料 效能比較 效能分析 測試環境 作業系統 linux as release 4,核心2.6.9 42.el...
MySQL效能測試分析
測試環境 作業系統 linux as release 4,核心2.6.9 42.elsmp 1 smp cpu intel r xeon tm cpu 3.00ghz,4核 記憶體 1g,主要執行mysql服務 硬碟 cciss 37g 檔案系統 ext3,支援大檔案 mysql mysql 5.0...
MySQL效能測試分析
mysql效能測試分析 作業系統 linux as release 4,核心2.6.9 42.elsmp 1 smp cpu intel r xeon tm cpu 3.00ghz,4核 記憶體 1g,主要執行mysql服務 硬碟 cciss 37g 檔案系統 ext3,支援大檔案 mysql my...