一、在編譯時優化MySQL
如果你從源代碼分發安裝MySQL,要注意,編譯過程對以後的目標程序性能有重要的影響,不同的編譯方式可能得到類似的目標文件,但性能可能相差很大,因此,在編譯安裝MySQL適應仔細根據你的應用類型選擇最可能好的編譯選項。這種定制的MySQL可以為你的應用提供最佳性能。
技巧:選用較好的編譯器和較好的編譯器選項,這樣應用可提高性能10-30%。(MySQL文檔如是說)
1.1、使用pgcc(Pentium GCC)編譯器
該編譯器()針對運行在奔騰處理器系統上的程序進行優化,用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/目錄下找到。