HI:私はマルチスレッドJavaデータベースアプリケーションを持っており、カスタマイズされたデータベースプーリングを作成する必要があります。その理由は、私たちの準備文のいくつかは接続にキャッシュされなければならないからです。私たちは、無料のハッシュマップともう1つのロックされたハッシュマップに基づいて、私たちの原始的なソリューションを持っています。ハッシュマップでは、synchronizedメソッドを使用する必要があり、スループットが影響を受けます。選択は、同期部分ができるだけ小さくなるようにconcurrentHashMapを使用することです。いくつかのサンプルコードがありますか?または、私はDBCPのソースコードを読むためにApacheのapacheをダウンロードするのでしょうか?Java:JDBCデータベース接続プール
1
A
答えて
1
同期を使用すると、約1〜2マイクロ秒かかります。これが重要な場合は、JDBCを使用すべきではありません。私見では。 TCP接続を介してサービスにアクセスするのは100マイクロ秒かかることが多く、多くのJDBCデータベースでは1〜10ミリ秒の遅延があります。
クエリ/更新あたり数ミリ秒で問題がないと思われますが、この場合は同期を使用しても問題はありません。
スレッド数に応じて、スレッドごとにスレッドローカル接続を設定できます。これにより、できるだけオーバーヘッドが削減されます。
0
あなたはマルチスレッドアプリケーションを持っていますが、同時に多くのスレッドが同じデータベース接続を使用していますか? PreparedStatementキャッシュはConnectionレベルで実行されるため、一度に1つのスレッドで接続が使用されている場合は、同期は必要ありません。
関連する問題
- 1. データベース接続プール
- 2. JBossデータベース接続プール
- 3. クリスタルラングとデータベース接続プール
- 4. django mysqlデータベース接続プール
- 5. マイクロサービス用のデータベース接続プール戦略
- 6. Javaデータベース接続プール(BoneCPとDBPool vs c3p0)
- 7. psycopg2.poolのDjangoデータベース接続プール
- 8. 接続プールからデータベース接続を取得する
- 9. OrientDB接続プール
- 10. cx_Oracle接続プール
- 11. EventHub接続プール
- 12. 接続プールJava
- 13. TCP接続プール
- 14. JDBC接続プール
- 15. mongodb接続プール
- 16. リポジトリ接続プール
- 17. 接続プールが
- 18. ループバッククラウドコネクタ接続プール
- 19. JDBC接続プール
- 20. tomcat接続プール
- 21. Hbase接続プール
- 22. ruby http接続プール
- 23. Akka http接続プール
- 24. DBCP接続プールloginTimeout
- 25. CoreCLR/ServiceStack接続プール
- 26. SDN-4接続プール
- 27. Javaの接続プール
- 28. node.js + mysql接続プール
- 29. PHP接続プールmysql
- 30. RestSharpの接続プール
プリペアドステートメントをキャッシュする要件はどこから来ていますか?どれくらいキャッシュする必要がありますか? – Olaf
スレッドプールのサンプルコードまたは同時ハッシュマップを使用するためのサンプルコード。 P.S接続がフリーであるかどうかを確認するためにハッシュマップを使用していますか? FIFOキューははるかに優れているはずはありません。あなたのサーバーメモリを賢明に負担するほど多くの接続はありません。 –
私は単純な接続プールを維持するためのシンプルなクラスを作成しました。あなたが探しているものかどうかわかりませんが、 –