程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL優化簡明指南(1)

MySQL優化簡明指南(1)

編輯:MySQL綜合教程

一、在編譯時優化MySQL
如果你從源代碼分發安裝MySQL,要注意,編譯過程對以後的目標程序性能有重要的影響,不同的編譯方式可能得到類似的目標文件,但性能可能相差很大,因此,在編譯安裝MySQL適應仔細根據你的應用類型選擇最可能好的編譯選項。這種定制的MySQL可以為你的應用提供最佳性能。
技巧:選用較好的編譯器和較好的編譯器選項,這樣應用可提高性能10-30%。MySQL文檔如是說)
1.1、使用pgccPentium GCC)編譯器
該編譯器http://www.goof.com/pcg/)針對運行在奔騰處理器系統上的程序進行優化,用pgcc編譯MySQL源代碼,總體性能可提高10%。當然如果你的服務器不是用奔騰處理器,就不必用它了,因為它是專為奔騰系統設計的。
1.2、僅使用你想使用的字符集編譯MySQL
MySQL目前提供多達24種不同的字符集,為全球用戶以他們自己的語言插入或查看表中的數據。卻省情況下,MySQL安裝所有者這些字符集,熱然而,最好的選擇是指選擇一種你需要的。如,禁止除Latin1字符集以外的所有其它字符集:
%>./configure -with-extra-charsets=none [--other-configuration-options]
1.3、將mysqld編譯成靜態執行文件
將mysqld編譯成靜態執行文件而無需共享庫也能獲得更好的性能。通過在配置時指定下列選項,可靜態編譯mysqld。
%>./configure -with-mysqld-ldflags=-all-static [--other-configuration-options]
1.4、配置樣本
下列配置命令常用於提高性能:
%>CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared
二、調整服務器
確保運用正確的編譯固然重要,但這只是成功的第一步,配置眾多的MySQL變量同樣對服務器的正常運行起關鍵作用。你可以將這些變量的賦值存在一個配置文件中,以確保它們在每次啟動MySQL時均起作用,這個配置文件就是my.cnf文件。
MySQL已經提供了幾個my.cnf文件的樣本,可在/usr/local/mysqld/share/mysql/目錄下找到。這些文件分別命名為my-small.cnf、 my-medium.cnf、my-large.cnf和my-huge.cnf,規模說明可在描述配置文件適用的系統類型標題中找到。如果在只有相當少內存的系統上運行MySQL,而且只是偶爾的用一下,那麼my-small.cnf會比較理想,因為它命令mysqld只使用最少的資源。類似地,如果你計劃構建電子商務超市,而且系統擁有2G內存,那麼你可能要用到mysql-huge.cnf文件了。
為了利用這些文件中的一個,你需要復制一個最適合需求的文件,改名為my.cnf。你可以選擇使用配置文件三種作用范圍的一種:
Global:將my.cnf文件復制到服務器的/etc目錄下,這使得配置文件中的變量作用於全局,即對所有服務器上的MySQL數據庫服務器有效。
Local:將my.cnf文件復制到[MYSQL-INSTALL-DIR]/var/目錄下,使得my.cnf作用於特定的服務器。[MYSQL-INSTALL-DIR]表示MySQL安裝目錄。
User:你可以再限制作用於特定的用戶,將my.cnf復制到用戶的根目錄下。
究竟如何設置my.cnf中的這些變量呢?更進一步說,你可以設置哪一個變量。雖然所用變量對MySQL服務器相對通用,每一個變量與MySQL的的某些組件有更特定的關系。如變量max_connects歸在mysqld類別下。執行下列命令即可知道:

%>/usr/local/mysql/libexec/mysqld --help 
它顯示大量的選項及與mysqld相關的變量。你可以很容易地在該行文字之下找出變量:
Possible variables for option --set-variable (-O) are
然後你可以如下設置my.cnf中的那些變量:
set-variable = max_connections=100
它設置MySQL服務器的最大並發連接數為100。要確保在my.cnf文件中的[mysqld]標題下插入變量設置。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved