Nodejs連接數據庫為何使用連接池


  問題一、nodejs既然是單線程運行,在連接數據庫時為何要使用連接池呢?

  問題二,redis服務端是單線程運行的,使用連接池到redis,服務端還是串行處理,有什么意義么?

  這兩個問題都涉及到單線程與連接池,仔細想像這兩個問題其實回答是一樣的:

  關鍵點是:網絡傳輸消耗時間

    一次查詢會有三個過程:發送查詢報文,服務端執行查詢操作,收取回復報文。

    在大部分情況下,有理由相信服務端執行時間很短,而大部分時間消耗在了網絡傳輸上。

    1)對於那些在一個連接上只能發送一個查詢請求的客戶端,使用連接池就可以在同樣的時間內發送多個連接請求,從而更有效的使用服務器的資源。

    2)而對於另外在一個連接上可以發送多個查詢請求,然后獲取多個請求的回復的服務器,雖然使用連接池的好處減低,但是在其中一個鏈接失敗時馬上可以取連接池中的下一個鏈接,也是一件好事。

    因此問題一,對應第一個點,如mysql。

    問題二對應第二點,redis。


免責聲明!

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



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