首頁 資料庫 mysql教程 3 個簡單優化MySQL的小方法

3 個簡單優化MySQL的小方法

Feb 11, 2018 am 10:55 AM
mysql 最佳化 方法

1.沒有兩個資料庫或應用程式是完全相同的。這裡假設我們要調整的資料庫是為一個「典型」的 Web 網站服務的,優先考慮的是快速查詢、良好的使用者體驗以及處理大量的流量。

2.在你對伺服器進行最佳化之前,請做好資料庫備份!

本文主要為大家帶來了優化 MySQL 3 個簡單的小調整,需要的朋友參考下,希望能幫助大家。

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 伺服器效能更好。

相關推薦:

分析優化Mysql 多表聯合查詢效率

linux上最佳化mysql技巧

修改Innodb的資料頁大小以最佳化MySQL的方法實例詳解

#

以上是3 個簡單優化MySQL的小方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP 的大數據結構處理技巧 PHP 的大數據結構處理技巧 May 08, 2024 am 10:24 AM

PHP 的大數據結構處理技巧

手機字體大小設定方法(輕鬆調整手機字體大小) 手機字體大小設定方法(輕鬆調整手機字體大小) May 07, 2024 pm 03:34 PM

手機字體大小設定方法(輕鬆調整手機字體大小)

如何優化 PHP 中的 MySQL 查詢效能? 如何優化 PHP 中的 MySQL 查詢效能? Jun 03, 2024 pm 08:11 PM

如何優化 PHP 中的 MySQL 查詢效能?

如何在 PHP 中使用 MySQL 備份和還原? 如何在 PHP 中使用 MySQL 備份和還原? Jun 03, 2024 pm 12:19 PM

如何在 PHP 中使用 MySQL 備份和還原?

如何選擇手機膜,保護你的手機螢幕(選購手機膜的幾個重點與技巧) 如何選擇手機膜,保護你的手機螢幕(選購手機膜的幾個重點與技巧) May 07, 2024 pm 05:55 PM

如何選擇手機膜,保護你的手機螢幕(選購手機膜的幾個重點與技巧)

如何使用 PHP 插入資料到 MySQL 表? 如何使用 PHP 插入資料到 MySQL 表? Jun 02, 2024 pm 02:26 PM

如何使用 PHP 插入資料到 MySQL 表?

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤 如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤 Dec 09, 2024 am 11:42 AM

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤

如何在 PHP 中使用 MySQL 預存程序? 如何在 PHP 中使用 MySQL 預存程序? Jun 02, 2024 pm 02:13 PM

如何在 PHP 中使用 MySQL 預存程序?

See all articles