中文參考手冊 10從MySQL得到最大的效能

2021-04-17 06:05:45 字數 1766 閱讀 2014

優化是一項複雜的任務,因為它最終需要對整個系統的理解。當用你的系統/應用的小知識做一些區域性優化是可能的時候,你越想讓你的系統更優化,你必須知道它也越多。

因此,本章將試**釋並給出優化mysql的不同方法的一些例子。但是記住總是有某些(逐漸變難)是系統更快的方法留著去做。

為了使乙個系統更快的最重要部分當然是基本。你也需要知道你的系統將做這樣的事情,那就是你的瓶頸。

最常見的瓶頸是:磁碟尋道。磁碟花時間找到乙個資料,用在2023年的現代磁碟其平均時間通常小於10ms,因此理論上我們能大約一秒尋道1000次。這個時間用新磁碟提高很慢並且很難對乙個表優化。優化它的方法是將資料散布在多個磁碟上。當磁碟在我們需要讀資料的正確位置時,磁碟讀/寫。用2023年的現代,乙個磁碟傳輸類似10-20mb/s。這必尋道更容易優化,因為你能從多個磁碟並行地讀。cpu週期。當我們讀資料進記憶體時,(或如果它已經在那裡)我們需要處理它以達到我們的結果。當我們有相對記憶體較小的表時,這是最常見的限制因素,但是用小表速度通常不是問題。記憶體頻寬。當cpu需要超出適合cpu快取的資料時,快取頻寬就成為記憶體的乙個瓶頸。這是對大多數系統的乙個不常見的瓶頸但是你應該知道它。

我們以系統級的東西開始,因為這些決策的某一些很早就做好了。在其他情況下,快速瀏覽這部分可能就夠了,因為它對大收穫並不重要,但是有乙個關於在這個層次上收穫有多大的感覺總是好的。

使用的預設os確實重要!為了最大程度地使用多cpu,應該使用(因為執行緒工作得確實不錯)或(因為2.2本的核心又確實不錯的**p支援)。而且在32位的機器上,linux預設有2g的檔案大小限制。當新的檔案系統被發布時(xfs),希望這不久被修正。

因為我們沒在很多平台上執行生產mysql,我們忠告你在可能選擇它前,測試你打算執行的平台。

選項避免外部鎖定。注意這將不影響mysql功能,只要它僅執行在乙個伺服器上。只要在你執行以前,記得要停掉伺服器(或鎖定相關部分)。在一些系統上這個開關是強制的,因為外部鎖定不是在任何情況下都工作。當用mit-pthreads編譯時,選項預設為開啟(on),因為沒在所有的平台上被mit-pthreads充分支援。唯一的情況是如果你對同一資料執行mysql伺服器(不是客戶),你不能使用之時,否則對沒有先清掉(flushing)或先鎖定伺服器的表上執行。你仍然能使用/,即使你正在使用

大多數下列測試在linux上並用mysql基準進行的,但是它們應該對其他作業系統和工作負載給出一些指示。

當你用鏈結時,你得到最快的可執行檔案。使用unix套接字而非tcp/ip連線乙個也可給出好一些的效能。

在linux上,當用編譯時,你將得到最快的**。為了用這些選項編譯,你需要大約200m記憶體,因為需要很多記憶體使所有函式嵌入(inline)。在配置mysql時,你也應該設定以避免包括庫(它不需要)。

只通過使用乙個較好的編譯器或較好的編譯器選項,在應用中你能得到乙個10-30%的加速。如果你自己編譯sql伺服器,這特別重要!

在intel上,你應該例如使用pgcc或cygnuscodefusion編譯器得到最大速度。我們已經測試了新的fujitsu編譯器,但是它是還沒足夠不出錯來優化編譯mysql。

這裡是我們做過的一些測量表:1

MySQL中文參考手冊

mysql中文參考手冊 0?譯者序 1 mysql 一般的資訊 1.1 什麼是 mysql 1.2 關於本手冊 1.2.1 本手冊中使用的約定 1.3 mysql 歷史 1.4 mysql 主要特徵 1.5 mysql 穩定性?1.6 順應 2000 年 1.7 sql 一般資訊和教程 1.8 有用...

FastCGI中文參考手冊

請求已發生次數 count 2.fastcgi程式為長生存期應用程式,如在設計中有缺陷會產生記憶體溢位問題,對伺服器造成安全隱患。且這種溢位是不可預見性。本程式初始化了乙個控制變數,一旦使用者請求次數達到預先設定的數量程式結束,下一次請求將重新初始化。usr bin perl use fcgi us...

中文參考手冊4安裝MySQL

本章描述怎樣獲得並安裝mysql 對於你能從其獲得mysql的站點列表,見。要了解支援哪些平台,見4.2mysql支援的。可獲得mysql的多個版本,以二進位制 和源 形式分發。為了確定你應該使用的分發的版本和型別,見。針對二進位制 和源 分發的安裝指令在和講述。每套指令均包含乙個關於你可能涉及的系...