MySQL Innodb資料庫效能實踐——熱點資料效能

來源:互聯網
上載者:User

對於大部分的應用來說,都存在熱點資料的訪問,即:某些資料在一定時間內的訪問頻率要遠遠高於其它資料。
常見的熱點資料有“最新的新聞”、“最熱門的新聞”、“下載量最大”的電影等。

為了瞭解MySQL Innodb對熱點資料的支援情況,我進行了基準測試,測試環境如下:

【硬體設定】

硬體

配置

CPU

Intel(R) Xeon(R) CPU E5620 主頻2.40GHz, 物理CPU 2個,邏輯CPU 16個

記憶體

24G(6塊 * 4G  DDR3 1333 REG)

硬碟

300G * 3個,SAS硬碟 15000轉,無RAID,有RAID卡,且開了回寫功能

OS

RHEL5

MySQL

5.1.49/5.1.54

【MySQL配置】

配置項

配置

innodb_buffer_pool_size

4G

innodb_log_file_size 

200M

innodb_log_files_in_group 

3

sync_binlog

100

innodb_flush_log_at_trx_commit

2

【熱點資料模型】
為了類比熱點資料主要儲存在記憶體中的情況,使用範圍查詢將前20%資料作為熱點資料載入到記憶體,例如:SELECT COUNT(*) FROM BT_KV_SHORT_INT_CHAR_10KW WHERE col1 < 20000000

項目

模型

表記錄數

1KW(3G),2KW(6G),5KW(15G),10KW(30G)

Key

INT

Value

CHAR(250)

熱點資料

佔總資料20%

效能測試結果如下:

【查詢】

詳細分析如下:

==>當熱點資料小於Innodb buffer pool時(1KW/2KW/5KW),查詢操作的效能很高,和表資料小於Innodb buffer pool時的效能相近;

==> 當熱點資料大於Innodb buffer pool時(10KW),查詢的效能下降明顯;

==> 熱點資料訪問的總體效能優於隨機訪問;

【插入】

詳細分析如下:

==>當熱點資料小於Innodb buffer pool時(1KW/2KW/5KW),效能隨著熱點資料的增長而逐漸下降,原因是當Innodb buffer pool接近飽和時,buffer管理需要進行更多的操作;

==>當熱點資料超過Innodb buffer pool後(10KW),效能急劇下降,原因是磁碟IO已經成為效能瓶頸;

【更新】

分析同INSERT。

【刪除】

分析如下:

==>和INSERT/UPDATE表現略微不同,當熱點資料小於Innodb buffer pool時,效能變化不大,因為DELETE操作不需要產生新的Page,節省了buffer管理的操作;

==> 當熱點資料大於Innodb buffer pool時,效能下降較大,原因是此時磁碟IO已經成為效能瓶頸。

【總結】
Innodb buffer pool採用LRU的方式管理和淘汰資料,根據LRU演算法,熱點資料都會優先放入記憶體,因此熱點資料的測試效能比隨機訪問的要高出不少。
但熱點資料超出Innodb buffer pool後,磁碟IO成為效能主要瓶頸,效能會急劇下降。


【應用建議】
實際應用中涉及熱點資料訪問時,Innodb是一個高效能的較好的選擇,但前提是要能夠預估熱點資料的大小,只有當熱點資料小於Innodb buffer pool(即熱點資料全部能夠放入記憶體)時,才能夠獲得高效能。


註:
測試資料只為對比用,不代表一般情況下MySQL的效能就這麼高,因為為了能夠對比,測試時做了很多準備工作,測試操作也是比較特殊的

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.