具体的には、どちらか一方を使用する方が良いでしょうか?私は今、BatchGetItemを使用していて、それはかなり気分が遅いです。GetItem/BatchGetItemは、効率面でのDynamoDBテーブルのクエリとスキャンとどのように比較されますか?
答えて
パーティションキー(テーブルで使用されている場合はソートキー)を把握している単一のアイテムを効率的に検索するために、GetItemはクエリまたはスキャンよりも効率的です。 BatchGetItemは、パーティション/ソートキーを知っている一連のアイテムを取得する便利な方法で、ネットワークトラフィックの節約という点でより効率的です。
ただし、アイテムに関する部分的な情報しかない場合は、GetItem/BatchGetItemを使用することはできず、スキャンするアイテムまたは気になるアイテムをクエリする必要があります。このような場合、問合せでは、すでに表領域を単一のパーティションのキー値に絞り込んでいるため、問合せはスキャンよりも効率的になります。フィルタ式は実際に効率に寄与しませんが、ネットワークトラフィックを節約できます。
多数のアイテムを取得する必要がある場合もあります。同じパーティションキーを持つ多数の項目が必要な場合、クエリは複数のGetItem(またはBatchGetItem呼び出し)よりも効率的になります。また、テーブルの重要な部分を構成するアイテムを取得する必要がある場合は、スキャンが必要です。
「フィルタ式は実際に効率に寄与しませんが、ネットワークトラフィックを節約できます」と言います。私は、フィルタリングされた結果がより少ないデータを返すことを理解しています。たとえば、フィルタ式の一部として文字列セットに対して複数のIN演算子が実行された場合はどうなりますか?私はそのようなパターンの効率に関する情報を見つけることができません。乾杯。 – theSiberman
絶対に真実。ネットワーク帯域幅の面では、フィルタリングが実際に大規模であると仮定して、クライアントではなくサーバーでフィルタリングすることで、大幅に節約できます。また、接続が遅いと効果はさらに大きくなります。 DynamoDBを使用すると、クエリごとに最大1MBのデータを取得できるため、フィルタ処理された結果セットの希薄さに応じて、クエリごとに数キロバイトから1メガバイトのどこでも可能です。私は複数のIN句に関してどのような効率性が言及されているのかよくわかりません。 –
IN演算子はクライアントに返される前に結果に適用されるため、オーバーヘッドは無視できます。 –
- 1. Formtasticとsimple_formはどのように比較されますか?
- 2. テーブルを効率的に比較する
- 3. Cosmos DBとDynamoDBの比較
- 4. 2行のスキャンと比較
- 5. イテレータとconst_iteratorの比較は非効率的ですか?
- 6. Cgで効率的な並列SIMDの比較と選択をどのように実装しますか?
- 7. Liferayは、Weblogicや他のポータルサーバとどのように比較されますか?
- 8. Prattパーサーは他のパーサータイプとどのように比較されますか?
- 9. Tirは他のLua Webフレームワークとどのように比較されますか?
- 10. Spark View EngineのパフォーマンスはASP.NETとどのように比較されますか?
- 11. パンダでネストされたクエリ/複数のデータセットを効率的に比較
- 12. データベースとのデータの比較はどのようにですか?
- 13. OpenGL ESでの非標準テクスチャとテクスチャシートとの効率比較
- 14. Javascript配列はどのように比較されますか?
- 15. Jersey-clientとApache HTTP Clientはどのように比較されますか?
- 16. NP-CompleteとNP-Hardはどのように比較されますか?
- 17. Laravel 5.2 APIはLumenとどのように比較されますか?
- 18. Amazon ElasticsearchとElastic Cloud(elastic.co)はどのように比較されますか?
- 19. node-imagemagickとnode-gmはどのように比較されますか?
- 20. EQATECプロファイラはDotTraceとどのように比較されますか?
- 21. MVVMルーズカップリングはMVPとどのように比較されますか?
- 22. Javaランタイム環境と.NETフレームワークの比較は、コンパイルプロセスの面でどのように行われますか?
- 23. 配列比較、whileループと効率
- 24. テーブル外のテキストビューをテーブル行のテキストビューと比較するにはどうすればよいですか?
- 25. Java Class.cast()の効率と通常のキャストとの比較
- 26. オブジェクトはどのようにヌルと比較されませんか?
- 27. より効率的なJavaとDELETEとINSERTでのSELECTと比較
- 28. 効率:JavaでのUUIDとintの比較
- 29. Pythonのセットリストとセットを効率的に比較する
- 30. ORMフレームワークはデータベースの直接クエリと比較されます
可能性のある複製http://stackoverflow.com/q/30749560/1428388 – jbird