私は、それぞれ固有のIDと他のものを持つユーザーオブジェクトを含むコレクションを持っています。このコレクションは数百万のエントリを持つことができます。私の質問は、300 UIDSのリストを取って、どれがコレクションに存在するかを確認するクエリがどれくらい費用がかかりますか?MongoDBのデータベース全体のクエリはどれくらいの費用がかかりますか?
0
A
答えて
0
私はこの質問#1に2つの部分があると思います:クエリ、#2:パフォーマンス。
1:クエリは
これは簡単に$in
clauseを使用して行うことができます。
2:パフォーマンス
$in
句についての事は、DBの観点からこれを行うための唯一の論理的な方法があるということです。基本的には、あなたが持っている商品ごとに1つのインデックス検索を行います。
標準プロトコルに従って、すべてのインデックスをRAMに保存すると、このクエリはおそらく2秒ほどかかるでしょう。私は何百万という100億のサーバーを持っており、このような100個の「UIDS」の検索が約500ミリ秒後に戻ってきます。
YMMV。サーバー上で複数のスレッドが実行されていることを確認するために、複数の同時クエリを実行して、パフォーマンスを向上させることができます。
関連する問題
- 1. RESTful APIのSSLはどれくらいの費用がかかりますか?
- 2. Javaの.getClass()はどれくらいの費用がかかりますか?
- 3. UITableViewのreloadDataはどれくらいの費用がかかりますか?
- 4. Java(Solr)スレッドダンプはどれくらいの費用がかかりますか?
- 5. タイプ推論はどれくらいの費用がかかりますか?
- 6. クエリはTEMP表領域に関してどれくらいの費用がかかりますか?
- 7. C#どのくらいの費用がかかりますかDirectory.Exists
- 8. アプリケーション - > DBコールはどれくらいの費用がかかりますか? (つまり、Java JDBC - > Oracle)?
- 9. mongodbクエリの最大長はどれくらいですか?
- 10. javaの文字列変換の変換はどれくらいの費用がかかりますか?
- 11. StringComparison.CurrentCultureIgnoreCaseはC#の文字列の等価比較でどれくらいの費用がかかりますか?
- 12. PHPよりASP.NETを選択するのにどれくらいの費用がかかりますか?
- 13. std ::関数をコピーするのはどれくらいの費用がかかりますか?
- 14. PHPで例外を作成するのはどれくらいの費用がかかりますか?
- 15. XMLのXSD検証はどれくらいの費用がかかりますか?
- 16. AngularJSでの日付プレゼンテーション - フィルタはどれくらいの費用がかかりますか?
- 17. 新しいUIWebViewを作成するのにどれくらいの費用がかかりますか?
- 18. 処理するPython辞書はどれくらいの費用がかかりますか?
- 19. Firefoxアドオンをaddons.mozilla.orgに公開するのにどれくらいの費用がかかりますか?
- 20. GPSはどれくらいのバッテリーを消費しますか?
- 21. ViewControllerはどれくらいのメモリを消費しますか?
- 22. データベースまたはメモリからのクエリですか?どちらが速いの?
- 23. Archivelogsがどれくらいのスペースを消費するか見積もる方法はありますか?
- 24. どのくらいのメモリマップを消費していますか?
- 25. AWS Cloud9の使用には費用がかかりますか?
- 26. MongoDB:データベースを開いたり閉じたりする頻度はどれくらいですか?どうして?
- 27. ga()はどれくらい時間がかかりますか?
- 28. MongodbでObjectIdを調べるのにどれくらいの時間がかかりますか?
- 29. データベース接続を開いたままにするのは費用がかかりますか?
- 30. 消費者のライフサイクルはどのくらいですか?
私は、 "userid"というキーを持つ何百万ものドキュメントのコレクションを持っていて、コレクションにあるかどうかを知りたい "somepeople"のセットを持っているとします、useridとsomepeopleの間)、正しいクエリーは次のようになります:db.collection.find({"userid":{$ in:somepeople}})?あなたは、どのようにRAMにインデックスを保持すると述べた?そしてインデックスについて言えば、$ inをコールする前に毎回db.collection.ensureIndex({userid:1})を呼び出す必要があると考えて正しいですか? UserIDがプライマリキーであっても必要ですか(上記で嘘をついた "userid"は実際に "_id"です) – lms
多くの質問があります。まず、ここでは '_id'がおそらく正しいユーザーでしょう。 '_id'は自動的にインデックスを持っているので、あなたはそれをカバーしていますので、毎回' ensureIndex'を呼び出す必要はありません。 "インデックスをRAMに保存する":インデックスのサイズ( 'db.users.stats()')を見てください。そのサイズは、あなたが持っているRAMの量より少なくする必要があります。 MongoDBは、インデックスをRAMに保存し、速度を維持するために最善を尽くします。しかし、インデックスが4GBでRAMが2GBしかない場合は、このすべてが遅くなります。 –