1. 程式人生 > >【MYSQL】CPU資源和可用記憶體大小對資料庫效能的影響

【MYSQL】CPU資源和可用記憶體大小對資料庫效能的影響

前言

可能影響到資料庫效能的幾個點,其一就是伺服器硬體,也是本節要說的CPU與可用記憶體。

引入

當熱資料超過可用記憶體大小,MemCache儲存引擎快取層容易失效(當快取大量失效時,容易產生大量的網路傳輸),從而影響伺服器的效能。

當出現這類I/O系統瓶頸時,我們就需要升級I/O子系統,來增加更多的記憶體,網路與I/O資源就是對我們資料庫效能影響的第二個硬體因素。

CPU選型

採購人員經常性會向我們請教需要買什麼引數的CPU硬體等等。

我到時想什麼都買最好的!可是成本這種東西,只能讓你選其一

那麼,我們的CPU是要頻率還是數量呢?

首先我們應該知道我們的應用是否是CPU密集型?

其實大多數時候我們要選擇更好的而不是更多的對於目前版本的MYSQL,不支援多CPU對同一SQL併發處理

當然,我們也要看看系統的併發量如何?(併發是納秒級別的)

衡量資料庫處理能力的指標 QPS:同時處理SQL的數量(這裡是每秒)

MYSQL目前被大量應用於Web類的應用中,這類應用的併發量也是非常大的,則其CPU核心數量就比頻率重要

同時也要考慮所使用的MYSQL的版本(高版本對多核CPU的支援較好、起碼你可以放心使用16核或者32核的CPU)

當然,如果你想要使用多核CPU的話,還需要使用MYSQL最新版本,這樣才能做到最好的效能。

關於記憶體

MYSQL本身是單執行緒的
  • 記憶體的大小直接影響MYSQL的效能
  • 把資料儲存到快取中,可以大大提高資料的效能
常用的MYSQL儲存引擎
MyISAM 將索引儲存到記憶體中,資料則放在作業系統中

InnoDB 則是同時在記憶體儲存索引和資料,進而提高資料庫執行效率
記憶體配置的提示
1、記憶體雖然越多越好,但是對效能的影響是有限的,並不能無限的增加效能
2、當然,多餘的記憶體,可以增加作業系統等其他服務的效能
快取對讀有益處,同時對寫操作也有益處

CPU -》 記憶體 -》 磁碟

快取可以對寫操作進行延緩,將多次寫入變成一次寫入(Eg:瀏覽量計數器)

如果本文對你有所幫助,歡迎關注本人公眾號,謝謝。圖片描述