HI:我有一個多線程的Java數據庫應用程序,我們必須創建一個定製的數據庫池。原因是我們的一些預備聲明必須緩存在連接中。我們有一個基於一個免費hashmap的原始解決方案,另一個是鎖定的hashmap。使用散列表,我們必須使用同步方法,然後我們的吞吐量受到影響。選擇是使用concurrentHashMap,以便同步部分儘可能小。是否有一些示例代碼?或者我應該下載apache DBCP源代碼來閱讀?Java:JDBC數據庫連接池
1
A
回答
1
使用同步將花費你大約1-2微秒。如果這對你至關重要,你不應該使用JDBC。恕我直言。僅通過TCP連接訪問服務可能需要100微秒,許多JDBC數據庫的延遲爲1-10毫秒。
我懷疑每個查詢/更新幾毫秒對您來說很好,在這種情況下使用同步不太可能發生。
根據您有多少個線程,您可以爲每個線程設置一個線程本地連接。這儘可能地減少了開銷。
0
你有一個多線程應用程序,但許多線程同時使用相同的數據庫連接嗎?由於PreparedStatement緩存將在連接級別完成,因此如果連接一次由單個線程使用(我認爲應該是這種情況),則不需要同步。
相關問題
- 1. 數據庫連接池
- 2. JBoss數據庫連接池
- 3. 選擇一個數據庫連接池
- 4. 最佳數據庫連接池大小
- 5. 負載平衡數據庫連接池
- 6. SQL Server數據庫連接池?
- 7. 紅寶石數據庫連接池
- 8. .NET鏡像數據庫和連接池
- 9. 設計數據庫連接池
- 10. Play Framework:數據庫連接池關閉
- 11. Standalone Axis2中的數據庫連接池?
- 12. Django的:池MySQL數據庫連接
- 13. tomcat jdbc連接池與Oracle數據庫
- 14. 數據庫連接池(使用Java)
- 15. 單身連接和數據庫池
- 16. ADO .Net/C#數據庫連接池
- 17. 數據庫連接池是否重要?
- 18. Ruby/Rails數據庫連接池實現
- 19. Tomcat連接池和更改數據庫
- 20. django mysql數據庫連接池
- 21. jetty mysql數據庫連接池
- 22. ServiceStack OrmLite:MySQL數據庫連接池
- 23. 連接池與Access數據庫
- 24. 何時使用數據庫連接池
- 25. 連接到很多數據庫時的django和數據庫連接池
- 26. 數據庫池 - 連接到Spring3中的Mysql數據庫MVC
- 27. postgres連接池庫
- 28. 從連接池獲取數據庫連接
- 29. 池:連接到數據庫的多個連接
- 30. 連接池:檢索丟失的數據庫連接
哪裏需要緩存準備好的語句來自哪裏?你需要多久緩存它們? – Olaf
線程池的示例代碼或使用併發哈希映射的示例代碼。 P.S你是否使用哈希映射只是爲了查看連接是否是免費的?不會有一個FIFO隊列是一個更好的候選..後來不能有這麼多的連接,以負擔你的服務器內存明智 –
我做了一個簡單的類維護一個簡單的連接池,如果你想我可以在幾個小時內上傳當我回家時),雖然我不知道這是否是你要找的 –