首頁  >  文章  >  資料庫  >  MySQL效能最佳化的17個重點

MySQL效能最佳化的17個重點

巴扎黑
巴扎黑原創
2017-05-20 14:06:461731瀏覽

資料庫管理員把他們生命中的相當一部分時間花在了調整、試驗以改善DBMS效能之上。在診斷應用的滯緩現象和效能問題時,效能不良的資料庫(以及資料庫查詢)通常是最常見的禍因。

可以看出,以下的內容並不能完全決定MySQL的效能。我們只是想回顧一下前面各章的重點,提供一個進行效能最佳化探討和分析的出發點。

以下是具體的MySQL效能最佳化的17個要點:

#1.首先,MySQL(與所有DBMS一樣)具有特定的硬體建議。在學習和研究MySQL時,使用任何舊的電腦作為伺服器都可以。但對用於生產的伺服器來說,應該堅持遵循這些硬體建議。

2.一般來說,關鍵的生產DBMS應該運行在自己的專用伺服器上。

3.MySQL是用一系列的預設設定預先配置的,從這些設定開始通常是很好的。但過一段時間後你可能需要調整記憶體分配、緩衝區大小等。 (為查看當前設置,可使用 SHOW VARIABLES; 和 SHOW STATUS; 。)

#4.MySQL一個多用戶多線程的DBMS,換言之,它經常同時執行多個任務。如果這些任務中的某一個執行緩慢,則所有請求都會執行緩慢。如果你遇到顯著的效能不良,可使用 SHOW PROCESSLIST顯示所有活動進程(以及它們的執行緒ID和執行時間)。你也可以用KILL 指令終結某個特定的進程(使用這個指令需要當管理員登入)。

5.總是有不只一種方法寫同一條 SELECT 語句。應該試驗聯結、並、子查詢等,找出最佳的方法。

6.使用 EXPLAIN 語句讓MySQL解釋它將如何執行 SELECT 語句。

7.一般來說,預存程序執行得比一條一條地執行其中的各條MySQL語句快。

8.應該總是使用正確的資料型態。

9.絕對不要檢索比需求還要多的資料。換言之,不要用 SELECT * (除非你真正需要每個欄位)。

10.有的操作(包括 INSERT )支援一個可選的 DELAYED 關鍵字,如果使用它,將把控制項立即傳回給呼叫程序,並且一旦有可能就實際執行該操作。

11.在匯入資料時,應該關閉自動提交。你可能還想刪除索引(包括FULLTEXT 索引),然後在匯入完成後再重建它們。

12.必須索引資料庫表以改善資料檢索的效能。決定索引什麼不是一件微不足道的任務,需要分析使用的 SELECT 語句以找出重複的WHERE 和 ORDER BY 子句。如果一個簡單的 WHERE 子句傳回結果所花的時間太長,則可以斷定其中使用的列(或幾個列)就是需要索引的物件。

13.你的 SELECT 語句中有一系列複雜的 OR 條件嗎?透過使用多條SELECT 語句和連接它們的 UNION 語句,你能看到極大的效能改進。

14.索引改善資料檢索的效能,但損害資料插入、刪除和更新的效能。如果你有一些表,它們收集數據且不經常被搜索,則在有必要之前不要索引它們。 (索引可根據需要新增和刪除。)

15.LIKE 很慢。一般來說,最好是使用 FULLTEXT 而不是 LIKE 。

16.資料庫是不斷變化的實體。一組優化良好的表一會兒後可能就面目全非了。由於表格的使用和內容的更改,理想的最佳化和配置也會改變。

17.最重要的規則就是,每條規則在某些條件下都會被打破。

【相關推薦】

1. Mysql免費視訊教學

#2. mysql診斷啟動問題、查看日誌檔案詳解

3. MySQL資料庫的備份與維護詳解

4. MySQL設定存取權實例詳解

4.

MySQL建立使用者帳號和刪除使用者帳號######

以上是MySQL效能最佳化的17個重點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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