top
Loading...
7.1.4.MySQL基準套件
7.1.4. MySQL基準套件

本節應該包含MySQL基準套件(crash-me)的技術描述,但是該描述還沒寫成。目前,你可以通過在MySQL源碼分發中的“sql-bench”目錄下的代碼和結果了解基準套件是如何工作的。

通過基準用戶可以了解一個給定的SQL實現在哪方面執行得很好或很糟糕。

注意,這個基準是單線程的,它可以測量操作執行的最小時間。我們計劃將來在基準套件中添加多線程測試。

要使用基準套件,必須滿足下面的要求:

·         基準套件隨MySQL源碼分發提供。可以從http://dev.mysql.com/downloads/下載分發,或者使用當前的開發源碼樹(參見2.8.3節,“從開發源碼樹安裝”)

·         基準腳本用Perl編寫而成,使用Perl DBI模塊訪問數據庫服務器,因此必須安裝DBI。還需要為每個待測試的服務器提供服務器專用DBD驅動程序。例如,要測試MySQLPostgreSQLDB2,必須安裝DBD::mysqlDBD::PgDBD::DB2模塊。參見2.13節,“Perl安裝注意事項”。

獲得MySQL源碼分發后,可以在sql-bench目錄找到基準套件。要運行基準測試,應構建MySQL,然后進入sql-bench目錄并執行run-all-tests腳本:

shell> cd sql-bench

shell> perl run-all-tests --server=server_name

server_name是一個支持的服務器。要獲得所有選項和支持的服務器,調用命令:

shell> perl run-all-tests --help

crash-me腳本也位于sql-bench目錄。crash-me嘗試通過實際運行查詢確定數據庫支持的特性以及其功能和限制。例如,它確定:

·         支持什么列類型

·         支持多少索引

·         支持什么函數

·         查詢可以多大

·         VARCHAR列可以多大

關于一些可移植的基準程序的例子,參見MySQL基準套件。請參見7.1.4節,“MySQL基準套件”。可以利用這個套件的任何程序并且根據你的需要修改它。通過這樣做,可以嘗試不同的問題的解決方案并測試哪一個是最好的解決方案。

另一個免費基準套件是開放源碼數據庫基準套件,參見http://osdb.sourceforge.net/

在系統負載繁重時出現一些問題是很普遍的,并且很多客戶已經與我們聯系了,他們在生產系統中有一個(測試)系統并且有負載問題。大多數情況下,性能問題經證明是與基本數據庫設計有關的問題(例如,表掃描在高負載時表現不好)或操作系統或庫問題。如果系統已經不在生產系統中,它們大多數將容易修正。

為了避免這樣的問題,應該把工作重點放在在可能最壞的負載下測試你的整個應用程序。你可以使用Super Smack。該工具可以從http://jeremy.zawodny.com/mysql/super-smack/獲得。正如它的名字所建議,它可以根據你的需要提供合理的系統,因此確保只用于你的開發系統。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗