2011-03-07 71 views
1

我有20臺工廠機器的所有處理任務。我有一個數據庫適配器,與MYSQL數據庫進行通信,以便機器將所有信息存儲在其中。每個工廠機器面板都有自己的數據庫適配器和更新程序線程是否安全? updater線程只是持續檢查面板的當前任務ID是否與數據庫中的當前任務ID相同,如果沒有,則會使用有關新任務的信息重新填充面板。與sql數據庫交談的多線程應用程序的最佳做法

我不確定如果有太多的連接會增加開銷嗎?

+0

我不認爲20個連接會殺死MySQL服務器:p – 2011-03-07 15:25:44

回答

1

而不是有許多連接都做同樣的任務創建一個進程,維護taskid列表(如果它是所有機器不同),並檢查數據庫中的當前taskid。如果它改變了,那麼發送消息給所有機器(它們的taskid有變化)來更新它們的面板。這將避免不必要的數據庫負載,並且還會處理增加的機器數量而沒有任何影響。

+0

一旦試圖實現以前的事情,我相信這是我將如何繼續下去。 – davidahines 2011-03-07 16:49:26

3

RDBS被設計爲在特定時間被多個客戶端訪問。這是他們的目的之一。

所以我不認爲20個,甚至上千個同時連接都會導致任何問題。

+0

+1我同意;這就是RDBMS的設計目的。但是,通常連接需要服務器上的某些資源(例如內存),所以如果你真的想要成千上萬(或數百萬)的同時連接,你必須考慮這一點。 – 2011-04-05 15:09:56

1

mysql中的連接數受max_connections(允許同時連接的總數)系統變量和max_user_connections(每用戶同時連接的最大數量)控制。看看你的服務器設置,也許可以改變它們。默認數字絕對大於20。

相關問題