2013-06-05 20 views
5

PreparedStatementオブジェクトを作成すると、サーバー側にキャッシュされますか? OracleドライバのPreparedStatementとの違いはどうですか?プリペアドステートメントが再利用された場合、どのデータがCassandraサーバーに送信されますか?Datastax PreparedStatementsの動作

私が理解するところでは、javaドライバの1つのセッションオブジェクトは、クラスタ内の複数のノードへの複数の接続を保持しています。複数のスレッドで同じ準備文をアプリケーションで再利用すると、1つのCassandraへの接続を1つだけ使用できますか?私は文を準備することは1つの接続でのみ行われると思います...ルーティングキーが各実行コールによって更新されるとどうなりますか?

準備文を使用する利点は何ですか?

はあなたに

答えて

6

ありがとうはい、ステートメントIDとパラメータのみが文を準備した後に送信する必要があります。

ドライバは接続プール内の各サーバーのステートメントIDを追跡します。これはアプリケーションにとって透過的です。

各クエリのステートメントを再コンパイルする必要がないため、パフォーマンスが向上します。

+1

接続が失われた場合(または何らかの理由でセッションが閉じられた場合)、再接続後に準備されたこれらのステートメントは、新しいセッションで機能しますか? – pinkpanther

+0

はい、それらは再コンパイルされます。 – Tvaroh

関連する問題