7大絕招幫你輕輕鬆鬆提公升MySQL效能

2021-08-15 11:08:40 字數 2557 閱讀 1559

如果第一次沒有獲得innodb_buffer_pool_size的正確值,不用擔心。從mysql 5.7開始,可以動態更改innodb緩衝池的大小,無需重新啟動資料庫伺服器。

(2) innodb_log_file_size:這是乙個單獨的innodb日誌檔案大小。預設情況下,innodb使用兩個值,以便您可以將此數字加倍,以獲取迴圈重做日誌空間的大小,確保事務持久執行。這也優化了應用對資料庫的更改。設定innodb_log_file_size是乙個需要權衡的問題,分配的重做空間越大,寫入密集型工作負載的效能越好,但如果系統遇到電源丟失或其他問題,花費的恢復時間也越長。

如何知道mysql效能受當前innodb日誌檔案大小的限制呢?可以通過檢視實際使用的重做日誌空間來判斷。最簡單的方法是檢視percona monitoring and management innodb metrics儀表板。在下圖中,innodb日誌檔案大小不夠大,因為使用的空間非常接近可用的重做日誌空間(由紅線表示)。日誌檔案大小應至少比用於保持系統執行最佳效能的空間大20%。

在多個伺服器上執行許多元件的複雜應用程式中,可能難以知道需要多少連線。但幸運的是,mysql可以很容易地看到在峰值操作時使用了多少個連線。通常,為確保應用程式使用的最大可用連線數比最大連線數至少大30%。檢視這些數字的簡單方法是在percona監控和管理的mysql概述儀表板中使用mysql連線圖。下圖顯示了乙個健康的系統,其中有很多額外的連線可用。

(注意:當您將max_connections變數設定為顯著高於預設值時,通常需要考慮增加其他引數,如表快取的大小和mysql允許的開啟檔案數)

mysql優化關鍵4:將資料庫儲存在記憶體中

近年來,我們看到了固態硬碟(ssd)的轉型。即使ssd比旋轉硬碟驅動器要快得多,但是它們仍然與ram中的資料不相容。這中差異不僅來自於儲存效能本身,還來自資料庫在從磁碟或ssd儲存中檢索資料時必須執行的其他工作。

隨著硬體改進,無論您是在雲端執行還是管理自己的硬體,都越來越有可能將您的資料庫儲存在記憶體中 -。

更好的訊息是,您不需要將所有資料庫都裝入記憶體,只需將常訪問的工作資料集合放到記憶體中即可。

檢查資料庫在穩定狀態下執行的i / o數量(通常在啟動後幾個小時)。下圖您可以在percona監控和管理的innodb metrics儀表板上的innodbi / o。

mysql優化關鍵5:使用ssd儲存

如果您的資料庫不適合記憶體,但仍然需要快速儲存來處理寫入,並避免資料庫加速(重新啟動之後)時出現效能問題。 這些快速儲存意味著需要使用ssd。

由於成本或可靠性原因,一些「專家」仍然主張使用旋轉磁碟。但在運算元據庫中,這些觀點往往是過時的或錯誤的。今天,ssd在友好的**上提供了令人印象深刻的效能和可靠性。

然而,不是所有的ssd都是相同的。對於資料庫伺服器,您應該使用專為伺服器工作負載設計的ssd。

一種直接通過nvme或intel optane技術直接連線的ssd可提供最佳效能。即使作為san,nas或雲塊裝置進行遠端連線,與旋轉磁碟相比,ssd仍然具有優異的效能。

mysql優化關鍵6:向外擴充套件

即使是效能最好的伺服器也有侷限性。有兩種擴充套件方式:up和out。up意味著購買更多的硬體,但硬體很貴且很快就會過時。out有幾個好處:

可以利用更小、成本更低的系統。

通過向外擴充套件能更快更容易的線性放縮。

由於資料庫分布在多台物理機上,因此資料庫不會收到單椅硬體故障的影響。

雖然向外擴充套件有優勢,但也有一定的侷限性。味了資料同步,擴充套件需要複製,例如基本的mysql或percona xtradb集群複製。

您還需要確保連線到集群架構的應用程式可以找到所需的資料,通常要通過一些**伺服器和負載平衡器來實現,如proxysql或haproxy。

在計畫擴充套件的同時,要避免過早的擴張,使用分布式資料庫往往更複雜。

mysql優化關鍵7:擁有可觀察性

最好的系統在設計時要考慮到可觀察性。

您將mysql環境設定好、執行並正確調整之後,也不能就將它放置不管,資料庫環境可能受到系統或工作負載更改的影響。為流量達到峰值、應用程式錯誤和mysql故障等情況做好準備。

當這些情況發生時,你需要快速有效地解決它們。實現這一點的唯一方法是設定一些監控解決方案並進行正確的檢測。這可以讓您看到資料庫環境中正在執行的情況,並在出現問題時分析錯誤。理想情況下,系統能在發生事件之前進行攔截。

mysql enterprise monitor,monyog和percona監控和管理(pmm)都是不錯的監控工具,具有免費和開源的優勢。這些工具為監控和故障排除提供了良好的操作可見性

隨著越來越多的公司轉向開源資料庫(特別是mysql),以此來管理和服務於大規模生產環境中的業務資料,他們需要專注於保持這些資料庫的調整和執行的最佳效率。資料庫效能可能會導致或破壞您的業務目標,mysql為您的應用程式和**提供優質的資料庫解決方案,但要根據您的需求進行調整,以滿足您的需求並進行監控、查詢、防止瓶頸和效能問題

輕輕鬆鬆編譯核心

輕輕鬆鬆編譯核心 徐永久發表於 2002年09月10日 22 31。曾經重新編譯核心是一件多麼複雜的事情,很多人都會有這樣的恐懼感。然而,看完本文以後,希望你會感到一身輕鬆,原來核心的編譯可以如此簡單。一 公升級核心的原因 公升級的原因有很多,例如新的硬體驅動,去除核心 bug 一般而言新核心會比舊...

輕輕鬆鬆打包MeeGo的QT程式

打包meego的qt程式是程式設計師的快樂時光,看到自己的成果馬上要發布了,多少天開發的勞累,多少天的抓耳撓腮的痛苦,都在此時化為美麗的故事。rpm包是meego最為常用的安裝包,本篇部落格以rpm包為基礎,講述如何在這快樂時光中,輕輕鬆鬆打包meego的qt程式。小結 rpm打包方法和工具有很多,...

linux環境之 輕輕鬆鬆背單詞

a.sudo apt get install libgtk2.0 0 libgtk2.0 dev libesd0 dev esound2 安裝應用程式 a.tar jzvf reciteword 0.8.4.tar.bz2 b.configure prefix usr local c.sudo ma...