黃金法則:MySQL基準(zhǔn)測試最佳實踐
MySQL基準(zhǔn)測試在數(shù)據(jù)庫性能優(yōu)化中是一個非常重要的分支。本文目的在于讓讀者對關(guān)系型數(shù)據(jù)庫系統(tǒng)有一個基本的了解,掌握MySQL以及如何管理使用Linux。文中討論了MySQL性能因素以及如何測試CPU性能,同時使用具體的例子來展示幾種實用的測試MySQL系統(tǒng)的實踐方法。
為什么數(shù)據(jù)庫管理員要在MySQL系統(tǒng)上運行基準(zhǔn)測試呢?答案顯而易見,倘若在一個模擬的實時環(huán)境中系統(tǒng)設(shè)計能夠承受住壓力并且滿足性能目標(biāo),那么數(shù)據(jù)庫管理員也無需大費周章了。
在深入了解MySQL基準(zhǔn)測試程序機制前,弄清楚什么是基準(zhǔn)測試,這一點非常重要。簡單來說,基準(zhǔn)測試是“運行計算機程序或操作行為,通過運行一些標(biāo)準(zhǔn)測試和一系列的映襯來評估對象的相對性能。”
CPU基準(zhǔn)測試主要用來測試硬件和運算能力,而軟件基準(zhǔn)測試更多的則是測試概念元素。
在我們的案例中,軟件基準(zhǔn)測試中數(shù)據(jù)庫管理系統(tǒng)基準(zhǔn)測試是一個很好的例子。這種類型的測試目的是衡量數(shù)據(jù)庫管理系統(tǒng)的吞吐量和響應(yīng)時間。最終的測試結(jié)果會以分?jǐn)?shù)顯示,而這些分?jǐn)?shù)主要用來比較。
數(shù)據(jù)庫管理員一般很難分清基準(zhǔn)測試和壓力測試之間的區(qū)別。這一點我們可以理解,因為這兩種條件有著類似的目標(biāo),即數(shù)據(jù)庫容量。兩者明顯的不同點在于:基準(zhǔn)測試給出的結(jié)果,以數(shù)字呈現(xiàn),能夠允許你在每個基準(zhǔn)測試和服務(wù)器/系統(tǒng)中調(diào)整設(shè)置,這是可以改變的,同時也能反應(yīng)出數(shù)據(jù)庫管理員是成功還是失敗。而壓力測試則是把系統(tǒng)推向極端邊緣用以了解系統(tǒng)的極限有多大。
由于本文重點討論MySQL基準(zhǔn)測試而非壓力測試,所有后者我們不再進(jìn)行討論。在MySQL服務(wù)器運行基準(zhǔn)測試時,性能因素是數(shù)據(jù)庫管理員必須考慮的問題。那么,有哪些性能因素?答案就是:吞吐量,延遲時間和可擴展性。將這三個因素結(jié)合在一起,代表了MySQL服務(wù)器的整體性能。
那么我們?nèi)绾芜M(jìn)行MySQL基準(zhǔn)測試呢?為了獲取正確的結(jié)果,請遵守以下一些規(guī)則:
應(yīng)該多次檢查輸入的數(shù)據(jù);
應(yīng)該多次運行基準(zhǔn)測試,至少5次;
重新啟動MySQL服務(wù)器以消除任何不必要的緩存因素;
數(shù)據(jù)庫管理員要有興趣、認(rèn)真對待進(jìn)程。
下面有幾個影響基準(zhǔn)測試的例子,我們在任何時候都應(yīng)當(dāng)避免這種情況出現(xiàn):
在一臺單一的虛擬機上運行基準(zhǔn)測試;
不可忽視不同網(wǎng)絡(luò)基礎(chǔ)設(shè)施的影響;
使用MySQL服務(wù)器默認(rèn)設(shè)置;
無需根據(jù)服務(wù)器配置特定的和獨特的業(yè)務(wù)需求;
無法消除緩存問題;
運行基準(zhǔn)測試時,忽視任何不必要的緩存問題。
如何在MySQL上運行基準(zhǔn)測試?
在構(gòu)建MySQL網(wǎng)站時把現(xiàn)有的技術(shù)文檔增加到MySQL基準(zhǔn)測試中,這是一個非常實用的基準(zhǔn)測試功能。MySQL開發(fā)團(tuán)隊稱,BENCHMARK ()函數(shù)常被用來測試MySQL進(jìn)程有多快?它適用于MySQL客戶端。
詳細(xì)功能顯示如:BENCHMARK (count, expr): The BENCHMARK ()函數(shù)執(zhí)行的表達(dá)式為expr重復(fù)計算次數(shù)。測試的結(jié)果值始終為0。基準(zhǔn)測試最重要的數(shù)字出現(xiàn)在幾秒鐘時間內(nèi)。如下圖示例:
posted on 2014-01-27 10:43 順其自然EVO 閱讀(234) 評論(0) 編輯 收藏 所屬分類: 數(shù)據(jù)庫