JDBC 中 socketTimeout 的作用


如果我們把socketTimeout設置如下:

socketTimeout=60000;

這意味着60秒以內服務器必須開始給客戶端吐數據,以保持socket的活性。配置成60秒,一般查詢都不會遇到問題。即使是全表掃描這樣的大查詢,數據也會流式地源源不斷吐給客戶端,不會達到60秒的限制。

但對於帶有ORDER BY、DISTINCT、COUNT、SUM等方法的大查詢,他們很可能60秒內還沒有計算出結果,這時候客戶端會檢測到socket超時並自動斷開,導致服務器會收到QUERY_KILL,中止本次執行。

結論:對於帶有排序、聚集函數的大查詢,socketTimeout 應該設置很大的值。例如:

socketTimeout=6000000;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM