2

datastax Java ドライバーを使用して選択クエリを作成します。limit オプションを使用して制限を設定しました。しかし、設定できる別のプロパティも表示されます

setFetchSize(整数サイズ)

ドキュメントによると、DEFAULT_FETCH_SIZE - 5000。

http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/QueryOptions.html#DEFAULT_FETCH_SIZE

これは、行に約 10000 列がある場合、クエリを 3 の制限で実行すると、指定されたデフォルト値の 5000 行を常にフェッチし、そこから最後の 3 行を制限することを意味しますか?

このように使用すると、制限クエリはデフォルトで最後の 3 つの値だけをフェッチすると思いました。誰かがこれについて明確にできますか?

4

3 に答える 3

6

LIMITエンジンが取得する行の最大数をsetFetchSize設定し、1 回のラウンドトリップでクライアントに返される行の最大数を設定します。

于 2014-04-04T11:08:37.227 に答える
0

cassandra LIMIT では、mysql やその他の RDBMS 制限と同じようには機能しません。

デフォルトでは、選択クエリを実行すると、10000列までデータが表示されます。その後、そのような制限を超えているというメッセージが1つ表示されるので、データベースに50000レコードがあり、選択クエリを実行していて、10000しか実行していないとしましょうレコードが表示されるので、クエリを実行しますselect * from table LIMIT 50000。この場合、50000 個のデータがすべて表示されます。

于 2014-04-04T06:12:26.917 に答える
0

fetchsize と limit の違いは、MySQL などの他のデータベースでの JDBC と同じだと思います。

したがって、LIMIT はクエリ結果を指定された範囲内にあるものに制限します。

フェッチ サイズは、next() を使用してクエリ ResultSet をスクロールする際に、ドライバによって一度にデータベースから物理的に取得される行数です。

于 2014-04-17T12:18:11.517 に答える