私のドキュメントのコレクションには (もちろん) ID がありますが、同じ ID を保持するフィールドもあります。 質問: このドキュメントを id
またはクエリによる
関数コードをリファクタリングしました。以前はクエリを使用していましたが、今ではコレクション内のドキュメントの ID を直接使用しています。しかし、私の印象では、この直接的なアプローチにははるかに時間がかかります。これはただの印象なのでしょうか...
理論的には、この 2 つの間にパフォーマンスの違いはありません。 Firestore クエリは、クエリによって返されるドキュメントの数に応じて拡張されます。両方のクエリが 1 つのドキュメントを返す場合、同じ操作を実行する必要があります。基本的に、インデックスを使用して一意の値を検索します。
参照: クエリは、データ セットのサイズではなく、結果セットのサイズに応じて拡張されます
これを本当にマイクロベンチマークしたい場合は、独自のテストを実行してどちらが速いかを調べる必要があります。しかし、最適化する必要のないものの最適化には多くの時間を費やすことになると思います。これに時間を費やす価値があるかどうかは、自分で決めることができます。
私の独断的なアドバイス: パフォーマンスではなく、コードの明確さを心配すべきです。プログラムの文脈で読んだ場合、どちらがより意味が分かりますか?一般に、ドキュメント参照の 1 回のフェッチは短くて読みやすく、単一のドキュメントのみを期待する場合は一連のドキュメント結果を確認する必要はありませんが、意見は異なる場合があります。
理論的には、この 2 つの間にパフォーマンスの違いはありません。 Firestore クエリは、クエリによって返されるドキュメントの数に応じて拡張されます。両方のクエリが 1 つのドキュメントを返す場合、同じ操作を実行する必要があります。基本的に、インデックスを使用して一意の値を検索します。
参照: クエリは、データ セットのサイズではなく、結果セットのサイズに応じて拡張されます
これを本当にマイクロベンチマークしたい場合は、独自のテストを実行してどちらが速いかを調べる必要があります。しかし、最適化する必要のないものの最適化には多くの時間を費やすことになると思います。これに時間を費やす価値があるかどうかは、自分で決めることができます。
私の独断的なアドバイス: パフォーマンスではなく、コードの明確さを心配すべきです。プログラムの文脈で読んだ場合、どちらがより意味が分かりますか?一般に、ドキュメント参照の 1 回のフェッチは短くて読みやすく、単一のドキュメントのみを期待する場合は一連のドキュメント結果を確認する必要はありませんが、意見は異なる場合があります。