2009-08-20 66 views
1

我正在開發一個Web應用程序,它將訪問和處理MySQL數據庫中的大量數據,如字典/同義詞庫。隨着數據庫規模的增加,我需要測試數據庫的性能,所以我知道每個請求在未來會有多慢。如何衡量數據庫性能?

任何想法?有沒有特定的工具來檢查特定查詢的數據庫性能等?

回答

3

您可以使用Maatkitquery profiler來衡量MySQL的性能數據量的影響。

而且generatedata.com產生你需要測試你的應用程序中的數據。

+0

與本地託管網絡應用程序將JMeter的工作? – 2009-08-20 13:48:56

+1

我沒有看到任何可能阻止人們在本地主機上使用JMeter的內容。 – Philippe 2009-08-20 13:51:23

+0

似乎像確定的答案,直到我們聽到更好的方法。 – 2009-08-21 13:37:01

1

的好工具:

您也可以使用HTTP測試工具,如測試您的應用程序響應使用的是apache的ab,它與apache httpd服務器標準配合。此工具可以與Web服務器建立多個連接並對其性能進行基準測試。而螢火蟲是一種很好的方法,可以看出事物的存放順序,每件物品需要裝載多長時間等,您只能看到一位用戶的體驗。針對卸載的測試服務器,該信息只能帶您到目前爲止。 ab模擬多個用戶連接,並將更加真實地描述特定頁面如何處理併發用戶。

這導致我的限制在AB:它僅測試一個URL。我經常通過掀起一個簡單的測試網頁來解決這個問題,該網頁從我想測試的預定義URL列表中進行隨機選擇。例如:登錄頁面,搜索結果,發佈評論等。 ab到達測試頁面,測試頁面只需調用其中一個測試URL(可能帶有隨機參數)並返回該頁面。通過這種方式,您可以更好地瞭解整個站點如何處理併發用戶。

PS:您的操作系統無法啓動。您必須根據您的應用程序的編寫方式,數據佈局,Web服務器和數據庫服務器的配置等自己弄清楚。

4

您知道嗎,特別是您正在測試?衡量「表現」總是毫無用處,除非你確切知道你想要什麼。

例如,您是否在查詢結果檢索時尋找低延遲?也許在日期檢索時高吞吐量?也許你更關心快速插入到數據庫中,而不是快速查詢結果?也許你關心不同表格上的不同事物(事實上,情況幾乎總是如此)。

我的建議可能會被忽略,但無論如何,我會說:

不要優化你知道你想要什麼之前。

爲你寫的代碼不要優化。

當你避開優化您的數據庫,請確保您優化了正確的事情。使用真實的數據 - 如果您正在測試字典大小的文本塊,請不要使用二進制數據進行測試(例如)。

不管怎樣,我知道你很可能尋找一個更技術性的答覆,但嘿...

+0

無論如何......並且正如我之前所說的那樣,「所以我知道未來每個請求的速度有多慢」 – 2009-08-20 13:53:48

+0

但是又一次 - 在這種情況下「慢」意味着什麼?你在測量延遲或吞吐量嗎? 無論如何,與測試祝你好運! – Thomi 2009-08-21 08:01:04

+0

執行生成動態網頁所需的所有查詢需要多長時間的延遲時間?我基本上是在談論數據庫服務器上的訪客數量過多......以及每個網頁總共花費多少時間*生成* – 2009-08-21 12:59:51