2014-10-20 88 views
0

在開始時我想說我不擅長這個領域,並且描述所有細微差別是有問題的。我使用的是使用Mysql數據庫的Rails應用程序。我們的數據庫增長了,現在我們在性能方面遇到嚴重問題。在我們的應用程序中,我們有兩個功能(例如與手機同步)處理大量數據,並導致數據庫掛起。我們使用newrelic進行監控,確認我們在應用程序的這兩個部分存在問題。我的主要問題是如何剖析我的應用程序以找出哪些操作會造成最大的問題?我可以使用哪些工具?你有什麼建議可以做什麼/配置數據庫來提高性能?我應該採取什麼行動來找出問題所在(下一小步)?我知道這些問題非常普遍,但我在這個領域中屬於初級階段,而且在軌道領域是新的。我相信你的答案後會出現更多的問題;)找出數據庫問題

+0

您可以從記錄SQL調用開始。 Rails反映了完成通話所花費的時間。改善需要花費很多時間的呼叫。一旦你有罪魁禍首位於。這個問題會導致更多的問題。問題偏向於SQL。 – ch4nd4n 2014-10-20 08:54:54

+0

是的,我知道我問過很多事情。但也許有人會在這裏描述我所能做的一些步驟。對我來說最大的問題是我如何改進我的mysql配置。如何找出mysql的問題。 – user2239655 2014-10-20 09:20:52

回答

0

首先,db的大小是什麼,比如每個表有多少個表和平均的行數。在您的問題中提供基本的詳細信息後,您可以查看幾個步驟。

關於與手機的數據同步。第一步應避免繁重的處理工作,而應使用後臺作業來處理數據並將實際需要發送到移動設備的表存儲在表中。所以在這種情況下,您將避免多次查詢,而1-2次查詢應該以最少的處理時間獲取整個數據。

我相信你必須有應用索引和主動模型關係已妥善管理。如果你可以發佈一些模型和它們之間的基本關係,它確實會有所幫助。還簡要介紹瞭如何完成同步和處理apis。

使用基準測試來計算處理數據時提取數據和監視日誌的時間。有一些更好的基準測試可用。