2013-05-21 18 views
0

有一個服務器應該能夠同時處理數百個請求,我決定在python中執行此操作,目前它已啓動並運行,現在我願意優化此代碼,因爲我想盡可能輕量級。Python服務器有效地處理同時發生的SQL請求

具有下列服務器佈局:

Incoming connection 
     || 
     \/ 
_________________ 
| Handling server | <| 
|_________________| | 
     ||    | 
     \/    | 
     FORKING --------/ 
     || 
     \/ 
_________________ 30 Queries ______________ 
| Dataprocessing | ---------->| MySQL-Server | 
|_________________| <----------|______________| 
     ||    
     \/  
    RESPONDING & closing connection 

現在會發生什麼,如果有X同時傳入連接,MySQL的服務器得到了很短的時間量很慢。

現在我正在尋找一種方法來動態「合併」不同的mysql請求或儘可能減少工作量。

,我可以問這個問題的一個例子是:

我該如何處理在給定的時間內很多的MySQL的請求,同時保持了MySQL服務器上的工作負載(5秒?)儘可能低

回答

3

有沒有簡單的/一刀切的方法來實現這一點,所以我建議是一些方法,你可能會考慮適應你的具體情況。

緩解MySql服務器負載的最好方法是在兩者之間使用緩存層,如果這適用於您的情況,但這取決於您的情況。

  • 方案1:select很多查詢

您可以使用緩存,如果你獲取的信息沒有得到非常頻繁相比,select查詢的速度變化。

  • 方案2:insert/update報表

這是棘手的地段,如果幾個陳述涉及更改相同元組,你可以在內存中短時間緩衝它們(總結起來,無論您可以根據您的應用程序邏輯來執行),並將彙總的結果發送到MySql,而不是每個結果。

另一種可能的方法是檢查是否花時間處理實際查詢或建立連接。如果是後者,您可以使用一種方法來集中幾個連接並重用它們,這可能會加快速度。

+0

我會盡我所能與一個緩存層inbetween,謝謝你的答案。 – Lazykiddy

相關問題