mysql 效能優化 系統配置優化

2021-08-17 07:50:05 字數 1538 閱讀 5316

1、innodb 儲存引擎

如果你還在使用 myisam 儲存引擎,那麼是時候轉換到 innodb 了。有很多的理由都表明 innodb 比 myisam 更有優勢,如果你關注效能,那麼,我們來看一下它們是如何利用物理記憶體的:

myisam:僅在記憶體中儲存索引。

innodb:在記憶體中儲存索引 和 資料。

結論:儲存在記憶體的內容訪問速度要比磁碟上的更快。

下面是如何在你的表上去轉換儲存引擎的命令:

alter

table table_name engine=innodb;

2、 讓 innodb 使用所有的記憶體

你可以在 my.cnf 檔案中編輯你的 mysql 配置。使用 innodb_buffer_pool_size 引數去配置在你的伺服器上允許 innodb 使用物理記憶體數量。

對此(假設你的伺服器僅僅執行 mysql),公認的「經驗法則」是設定為你的伺服器物理記憶體的 80%。在保證作業系統不使用交換分割槽而正常執行所需要的足夠記憶體之後 ,盡可能多地為 mysql 分配物理記憶體。

因此,如果你的伺服器物理記憶體是 32 gb,可以將那個引數設定為多達 25 gb。

innodb_buffer_pool_size =25600m
注意:(1)如果你的伺服器記憶體較小並且小於 1 gb。為了適用本文的方法,你應該去公升級你的伺服器。 (2) 如果你的伺服器記憶體特別大,比如,它有 200 gb,那麼,根據一般常識,你也沒有必要為作業系統保留多達 40 gb 的記憶體。

3、讓 innodb 多工執行

如果伺服器上的引數 innodb_buffer_pool_size 的配置是大於 1 gb,將根據引數 innodb_buffer_pool_instances 的設定, 將 innodb 的緩衝池劃分為多個。

擁有多於乙個的緩衝池的好處有:

在多執行緒同時訪問緩衝池時可能會遇到瓶頸。你可以通過啟用多緩衝池來最小化這種爭用情況:

對於緩衝池數量的官方建議是:

為了實現最佳的效果,要綜合考慮 innodb_buffer_pool_instances 和 innodb_buffer_pool_size 的設定,以確保每個例項至少有不小於 1 gb 的緩衝池。

因此,在我們的示例中,將引數 innodb_buffer_pool_size 設定為 25 gb 的擁有 32 gb 物理記憶體的伺服器上。乙個合適的設定為 25600m / 24 = 1.06 gb

innodb_buffer_pool_instances =24
注意!

在修改了 my.cnf 檔案後需要重啟 mysql 才能生效:

sudo service mysql restart
還有更多更科學的方法來優化這些引數,但是這幾點可以作為乙個通用準則來應用,將使你的 mysql 伺服器效能更好。

Greenplum系統配置優化

檔案系統 cpu 記憶體 在gp中,記憶體主要用於在sql執行過程彙總儲存中間結果 如排序 hashjoin等 若記憶體不夠,gp會選擇使用磁碟快取資料,大大降低sql執行的效能。網路 gp建議為segment機器上的每乙個主segment配置乙個千兆網絡卡,或者配置每台機器都有萬兆網絡卡。在lin...

效能優化之MySQL優化(四) 作業系統配置優化

資料庫是基於作業系統的,目前大多數的mysql都是安裝在linux系統之上,所以對於作業系統的一些引數配置也影響到mysql的效能,下面就列出一些常用到 的系統配置。網路方面的配置,要修改 etc sysctl.conf檔案 增加tcp支援的佇列書 net.ipv4.tcp max syn back...

系統配置與效能評價(摘抄)

1 計算機系統的層次結構 2 儲存器系統 1 概述 2 主儲存器 ram.rom.flash也是rom的一種 3 輔助儲存器 磁帶,磁碟,光碟 cd rom 唯讀壓縮盤,rom類似,但儲存量更高 cd r 只寫一次光碟 cd rw 可讀可寫多次 4 cache儲存器 5 網路儲存技術 直接附加儲存 ...