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