1

memcache を使用して DB から特定の結果をキャッシュするユースケースがあります。クエリ自体をキーとして使用し、値はCachedRowSetImpl結果セットをシリアル化するタイプになります。クエリを作成するPreparedStatementには、DB への接続オブジェクトを必要とするものを使用する必要があります。半分以上の時間が接続の確立に費やされているため、これはキャッシングの目的全体を無効にします。これに対する回避策はありますか?または、結果をキャッシュする別の方法を使用する必要がありますか?

4

1 に答える 1

0

毎回接続を確立しないようにするには、c3p0などの接続プールを使用します。Postgres、ユーザー名 swaldman、および passwordComboPooledDataSource を使用するように接続プールを構成します。

// in constructor
cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver            
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("swaldman");                                  
cpds.setPassword("test-password");                                  

JDBC 接続が必要な場合は、次を使用します。

Connection connection = cpds.getConnection();

同様の方法でセットアップされるDBCPなどの他の接続プールがあります。

于 2013-04-11T13:10:13.837 に答える