MySQL效能測試分析 mysql表最大記錄數

2021-06-07 13:21:55 字數 3264 閱讀 4997

作業系統: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...