私はMongoDBでクエリを最適化したいのですが、find()クエリから返されたカーソルでPHPクライアントプロトコルがどのように機能するのか、クライアント側に大量の結果をもたらしているのか、一度にリモートデータベースから取得し、アプリケーションに戻しますか?PHPのMongoDBカーソルは、クエリの実行時にすべてのレコードをクライアントに持ちますか?
3
A
答えて
3
PHPドライバ(および私が実行したその他のドライバ)は、バッチサイズに基づいて結果をフェッチします。また、JSシェルで直接検索クエリを実行すると、これを見ることができます。返される最初の20個の結果の最後に "has more"と表示されます。 (it)関数を呼び出すと、次のバッチなどがロードされます。
バッチサイズは、返されるデータサイズの合計と制限に関するその他の注意事項の制限まで設定可能です。
2
このページhttp://uk3.php.net/manual/en/class.mongocursor.phpは、カーソルオブジェクトがすべてのデータを一度に読み込むわけではないことを暗示しています。しかし、私はあなたがそれを行うレートを "微調整"することを可能にする任意のオプションを見ることができません。
0
それはより多くの理解チェックこのlinkのために...私のために働いています。
$criteria = array('geo.loc' => array('$exists' => 1));
$total = $collection->count($criteria);
$response = $collection->find($criteria)->limit($total)->batchSize(100);
foreach($response as $value){
$name = $value['name'];
}
おかげで、私は、クエリの制限を使用して、この方法を検討し、それは、レコードを一つずつなってきた場合、それはクライアントにデータを取得している場合でも、それは、しかし、限られただ、限界だ
関連する問題
- 1. PHP PDO更新クエリは、実行時にすべての行に影響します
- 2. mongodbが同時に複数のクエリを実行する
- 3. テーブル内のすべてのレコードのアクセスループとクエリの実行
- 4. mongodbシェルからmongodbクエリを持つスクリプトを実行する
- 5. MongoDBは、すべてのレコードのJava API
- 6. RockMongoまたはmViewerのmongodbクライアントで集約クエリを実行する方法
- 7. すべてのCeleryタスクの実行時に何かを実行します
- 8. 実行時の参照カーソル
- 9. PHPはクエリを実行しますか?
- 10. Python Asyncoreは、クライアントの切断時にhandle_readを実行します。
- 11. Azure WADPerformanceCountertable特定の間隔でクエリを実行中にすべてのレコードを返すクエリ
- 12. 実行時にcombinationfieldのクエリを実行する方法は?
- 13. 実行時にすべてのPRISMモジュールをロードするには?
- 14. mongodbでクエリを実行した後に余分なレコードを取得するのはなぜですか?
- 15. Makefile - サーバーの後に同時にクライアントを実行するには?
- 16. PHPとMongoDBは同じクエリを実行しています4-30回
- 17. クライアント終了時にPHPスクリプトを実行する
- 18. MongoDBは常に正の整数を持ちます
- 19. レコードの更新と同時にバッチジョブを実行するには?
- 20. クエリがすでに実行された後、mysqli/phpを使用してすべてのレコードを更新するにはどうすればよいですか?
- 21. PHPの中にあってもmysqlクエリは常に実行されますか?
- 22. MongoDBのクエリをPHPに変換する
- 23. 実行時にJavaScriptのオブジェクトのすべてのプロパティにドリルダウンできますか?
- 24. mongoDBはSQLと同じようにクエリを実行します!
- 25. PHPでSQLの複数行のクエリを実行するには?
- 26. クエリでMYSQLクエリの実行時間を取得するには
- 27. 特定の時間にphpを指定してクエリを実行する方法
- 28. mongodbでクエリを構築してSQLのように実行するには
- 29. Wordpress MySQLクエリの実行に時間がかかります
- 30. クエリの実行に時間がかかります
を@AdamComerford有用ではないかもしれない –
私はそれが結果をバッファリングすると思っていたので、一度に1つのドキュメントを取得するのではなく、バッファをいっぱいにしてバッファを処理したときに複数を取得します。だからあなたは大丈夫だろう。 –