加快MySQL伺服器執行速度的三種方法

2021-08-27 19:51:57 字數 2068 閱讀 6663

加快mysql伺服器執行速度的三種方法

如今,社會講求的就是快速,什麼事都要有效率,當然mysql伺服器也是要有效率。開發人員不斷地開發和部署使用lamp(linux?、apache、mysql 和 php/perl)架構的應用程式。但是,伺服器管理員常常對應用程式本身沒有什麼控制能力,因為應用程式是別人編寫的。本文重點討論為實現最高效率而對資料庫層進行的調優。

有3種方法可以加快mysql伺服器的執行速度,效率從低到高依次為:

第一種方法時替換有問題的硬體。對mysql程序的設定進行調優。對查詢進行優化。

替換有問題的硬體通常是我們的第一考慮,主要原因是資料庫會占用大量資源。不過這種解決方案也就僅限於此了。實際上,您通常可以讓**處理器(cpu)或磁碟速度加倍,也可以讓記憶體增大4到8倍。

第二種方法是對mysql伺服器(也稱為mysqld)進行調優。

對這個程序進行調優意味著適當地分配記憶體,並讓 mysqld 了解將會承受何種型別的負載。加快磁碟執行速度不如減少所需的磁碟訪問次數。類似地,確保 mysql 程序正確操作就意味著它花費在服務查詢上的時間要多於花費在處理後台任務(如處理臨時磁碟表或開啟和關閉檔案)上的時間。對mysqld進行調優是本文的重點。

最好的方法是確保查詢已經進行了優化。這意味著對錶應用了適當的索引,查詢是按照可以充分利用mysql功能的方式來編寫的。儘管本文並沒有包含查詢調優方面的內容(很多著作中已經針對這個主題進行了**),不過它會配置mysqld來報告可能需要進行調優的查詢。

雖然已經為這些任務指派了次序,但是仍然要注意硬體和mysqld的設定以利於適當地調優查詢。機器速度慢也就罷了,我曾經見過速度很快的機器在執行設計良好的查詢時由於負載過重而失敗,因為mysqld被大量繁忙的工作所占用而不能服務查詢。

第三種方法是記錄慢速查詢

在乙個sql伺服器中,資料表都是儲存在磁碟上的。索引為伺服器提供了一種在表中查詢特定資料行的方法,而不用搜尋整個表。當必須要搜尋整個表時,就稱為表掃瞄。通常來說,您可能只希望獲得表中資料的乙個子集,因此全表掃瞄會浪費大量的磁碟i/o,因此也就會浪費大量時間。當必須對資料進行連線時,這個問題就更加複雜了,因為必須要對連線兩端的多行資料進行比較。

當然,表掃瞄並不總是會帶來問題;有時讀取整個表反而會比從中挑選出一部分資料更加有效(伺服器程序中查詢規劃器用來作出這些決定)。如果索引的使 用效率很低,或者根本就不能使用索引,則會減慢查詢速度,而且隨著伺服器上的負載和表大小的增加,這個問題會變得更加顯著。執行時間超過給定時間範圍的查詢就稱為慢速查詢。

您可以配置 mysqld 將這些慢速查詢記錄到適當命名的慢速查詢日誌中。管理員然後會檢視這個日誌來幫助他們確定應用程式中有哪些部分需要進一步調查。清單1給出了要啟用慢速查詢日誌需要在my.cnf中所做的配置。

清單1.啟用mysql慢速查詢日誌

以下為引用的內容:

[mysqld]; enable the slow query log, default 10 secondslog-slow-queries; log queries taking longer than 5 secondslong_query_time = 5; log queries that don』t use indexes even if they take less than long_query_time; mysql 4.1 and newer onlylog-queries-not-using-indexes

這三個設定一起使用,可以記錄執行時間超過5秒和沒有使用索引的查詢。請注意有關 log-queries-not-using-indexes 的警告:您必須使用 mysql 4.1 或更高版本。慢速查詢日誌都儲存在 mysql 資料目錄中,名為 hostname-slow.log。如果希望使用乙個不同的名字或路徑,可以在my.cnf中使用log-slow-queries = /new/path/to/file 實現此目的。

閱讀慢速查詢日誌最好是通過mysqldumpslow命令進行。指定日誌檔案的路徑,就可以看到乙個慢速查詢的排序後的列表,並且還顯示了它們在日誌檔案中出現的次數。乙個非常有用的特性是mysqldumpslow在比較結果之前,會刪除任何使用者指定的資料,因此對同乙個查詢的不同呼叫被計為一次;這可以幫助找出需要工作量最多的查詢。

加快R的執行速度

原始檔 可以先執行下,觀察此時的運動狀態 x matrix 1 6666 6666 6666,6666 system.time tmp x x 2.將找到 解壓檔案下 bin libopenblas.dll 將libopenblas.dll重新命名為rblas.dll 然後替換掉r裡面的檔案 記得備...

加快tomcat啟動和執行速度

新版在 上找 能加快tomcat的啟動速度和執行速度。apache tomcat native library 是幹什麼的呢?這是 apache 為了提公升 tomcat 的效能搞的一套本地化 socket,thread,io 元件.也就是說它有高階 io 功能,作業系統級別的功能呼叫,以及本地程序...

如何加快Dijkstra演算法的執行速度?

演算法導論 mit 6.006 第18講 在dijkstra演算法中,面對單源單目標的最短路徑,如果遇到了要relax的節點u就是目標節點t,顯然就可以執行結束了。dijkstra演算法dijkstra演算法的探索路徑是從源一直往目標前景,那麼加速它的乙個角度就是從源開始探索的時候,同時從目標點向源...