2016-02-02 116 views
1

我有一個python,它必須在服務器上全天候工作。它不斷接收數據並將其插入到MySql數據庫中。該 頻率可以變化,且一般是約:保持與MySql數據庫連接的連接可以連接多久?

1 write/1 second minimun and 

1 write/30 minutes maximum. 

還有誰是可以從相同的數據庫和表中讀取,但這些都是單獨的應用程序的其他客戶。

鑑於此,我是否應該關閉從python腳本到MySql db的連接?也許我應該有一個計時器,所以我沒有數據要在10分鐘內插入,我應該關閉連接?然後在數據到來時再打開它。

+1

我想一個好問題是腳本需要從接收數據到輸入數據庫的速度有多快?從理論上講,你應該能夠確實保持連接數週甚至數月沒有問題。 –

回答

1

由於:

  • 了連接是唯一的(這是一個明確的一個應用,不依賴於充電「X」 CONNEXIONS,遊客數量,用戶等),

  • 關閉/重啓CONNEXIONS是消耗可能更多的資源不是將它保持在一個「睡眠」狀態

  • 沒有絕對需要有服務器之間交換的最低金額,一旦你有一個過程支柱在MySQL服務器上正確配置'wait_timeout'變量(參見參考資料)。 MySQL doc):其默認值爲8小時;它的最大值是...一年。

具體示例:我有一個'前端服務器',它運行在第一臺專用服務器上;這臺服務器非常輕巧,依靠另一個(物理)更大,更強大的服務器來存放(大)MySQL數據庫。 '前端服務器'在引導期間連接到遠程數據庫一次(通過SSH隧道&端口轉發,在Linux上);然後連接保持數月。

0

我認爲總是關閉連接是一種很好的做法。

如果您不關閉連接,其他客戶端可能會遇到「連接太多」的問題,具體取決於您的MySQL服務器可以處理多少個連接。