反駁"MySQL InnoDB (不行)的效能問題",千萬層級記錄來測試說明

來源:互聯網
上載者:User

在 JavaEye 上看到一篇對 MySQL FUD(Fear, uncertainty and doubt) 的文章

用MySQL InnoDB Benchmark 效能測試來說明

http://www.javaeye.com/topic/34676

文中提到:"InnoDB 的磁碟效能很令人擔心,MySQL 缺乏良好的 tablespace 真是天大的缺陷! ……網上有使用者反映存在同樣的插入效能問題,百萬行記錄插入之後,插入速度下降到了 1/30,從開始的 1600行/秒衰退到 50行/秒……"

50行/秒這麼慢我從來沒見過,見也沒人反駁,所以自己再專門驗證一下。

Tim's 環境:

MySQL 5.0.26 x86_64

Linux x86_64

iddata 檔案大小17G,未使用innodb_file_per_table分表選項

表1: 1000萬行左右,表大小 2.2G,含主鍵有6個索引欄位

表2: 3000萬行左右,表大小 6.3G,含主鍵有6個索引欄位

MySQL還有其他一些資料也在iddata中,但測試時候其他資料未訪問。

MySQL Server Hardware 環境

雙 XEON 3G

4G 記憶體, SCSI 硬碟

非專業非名牌,普通組裝的伺服器。

表結構就是一般的使用者表,包含 int, varchar, datetime 欄位類型,無 text,blob 類型欄位。

單行長度 0.1K 左右

對錶1測試2分鐘插入操作,在1千萬的表中每個調用插入1行,通過Java JDBC在另外一台測試機上調用 。

伺服器 CPU 30%

JDBC Result:

INSERT OK /ERR: 73824/0

Java HEAP: 7.12MB of 63.56 MB (11.2%) used

TIME elapse(sec): 129

AVG平均/CUR當前/MAX最大 Inserts/SEC: 572/620/620

再測試一個3000萬的表,通過Java JDBC在另外一台測試機上調用。

可能上一個測試2分鐘會讓人覺得沒有說服力,3000萬的表二就測試久一點吧。測試了10多分鐘,又插 入了100萬條新的資料

一個調用只插入1行,8個線程。使用了串連池。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.