您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么對MySQL服務器進行調優”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么對MySQL服務器進行調優”吧!
有3種方法可以加快MySQL服務器的運行速度,效率從低到高依次為:
第一種方法時替換有問題的硬件。對MySQL進程的設置進行調優。對查詢進行優化。
替換有問題的硬件通常是我們的第一考慮,主要原因是數據庫會占用大量資源。不過這種解決方案也就僅限于此了。實際上,您通常可以讓中央處理器(CPU)或磁盤速度加倍,也可以讓內存增大4到8倍。
第二種方法是對MySQL服務器(也稱為mysqld)進行調優。
對這個進程進行調優意味著適當地分配內存,并讓mysqld了解將會承受何種類型的負載。加快磁盤運行速度不如減少所需的磁盤訪問次數。類似地,確保MySQL進程正確操作就意味著它花費在服務查詢上的時間要多于花費在處理后臺任務(如處理臨時磁盤表或打開和關閉文件)上的時間。對mysqld進行調優是該篇文章的重點。
最好的方法是確保查詢已經進行了優化。這意味著對表應用了適當的索引,查詢是按照可以充分利用MySQL功能的方式來編寫的。盡管該篇文章并沒有包含查詢調優方面的內容(很多著作中已經針對這個主題進行了探討),不過它會配置mysqld來報告可能需要進行調優的查詢。
雖然已經為這些任務指派了次序,但是仍然要注意硬件和mysqld的設置以利于適當地調優查詢。機器速度慢也就罷了,我曾經見過速度很快的機器在運行設計良好的查詢時由于負載過重而失敗,因為mysqld被大量繁忙的工作所占用而不能服務查詢。
如何對MySQL服務器進行調優
第三種方法是記錄慢速查詢
在一個SQL服務器中,數據表都是保存在磁盤上的。索引為服務器提供了一種在表中查找特定數據行的方法,而不用搜索整個表。當必須要搜索整個表時,就稱為表掃描。通常來說,您可能只希望獲得表中數據的一個子集,因此全表掃描會浪費大量的磁盤I/O,因此也就會浪費大量時間。當必須對數據進行連接時,這個問題就更加復雜了,因為必須要對連接兩端的多行數據進行比較。
當然,表掃描并不總是會帶來問題;有時讀取整個表反而會比從中挑選出一部分數據更加有效(服務器進程中查詢規劃器用來作出這些決定)。如果索引的使用效率很低,或者根本就不能使用索引,則會減慢查詢速度,而且隨著服務器上的負載和表大小的增加,這個問題會變得更加顯著。執行時間超過給定時間范圍的查詢就稱為慢速查詢。
您可以配置mysqld將這些慢速查詢記錄到適當命名的慢速查詢日志中。管理員然后會查看這個日志來幫助他們確定應用程序中有哪些部分需要進一步調查。清單1給出了要啟用慢速查詢日志需要在my.cnf中所做的配置。
清單1.啟用MySQL慢速查詢日志
以下為引用的內容:
[mysqld];enabletheslowquerylog,default10secondslog-slow-queries;logqueriestakinglongerthan5secondslong_query_time=5;logqueriesthatdon’tuseindexeseveniftheytakelessthanlong_query_time;MySQL4.1andneweronlylog-queries-not-using-indexes
這三個設置一起使用,可以記錄執行時間超過5秒和沒有使用索引的查詢。請注意有關log-queries-not-using-indexes的警告:您必須使用MySQL4.1或更高版本。慢速查詢日志都保存在MySQL數據目錄中,名為hostname-slow.log。如果希望使用一個不同的名字或路徑,可以在my.cnf中使用log-slow-queries=/new/path/to/file實現此目的。
閱讀慢速查詢日志最好是通過mysqldumpslow命令進行。指定日志文件的路徑,就看到的是一個慢速查詢的排序后的列表,并且還顯示了它們在日志文件中出現的次數。一個非常有用的特性是mysqldumpslow在比較結果之前,會刪除任何用戶指定的數據,因此對同一個查詢的不同調用被計為一次;這可以幫助找出需要工作量最多的查詢。
到此,相信大家對“怎么對MySQL服務器進行調優”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。