>_tech-draft
Firebaseのアイコン
Firebase
動画公開日
タイトル

How to build high-performance pipelines in Firestore Enterprise

再生時間

7分 13秒

Firestore Enterprise Edition クエリ最適化: インデックス活用戦略

ポイント

  • Firestore Enterprise Editionでの高速かつ効率的なクエリ実現を目指す開発者向けに、インデックス活用戦略を解説します。
  • インデックススキャンが高速である理由や、クエリの並べ替え・フィルタリングにおけるインデックスの重要性が理解できます。
  • パフォーマンス向上の鍵はインデックス付きフィールドでクエリ範囲を絞り込むことであり、その具体的なメカニズムを学べます。

Firestore Enterprise Edition クエリ最適化: インデックス活用戦略

Firestore Enterprise Editionは、Standard Editionと比較して、より高度なクエリ機能とパフォーマンス最適化の可能性を提供します。本記事では、Firestore Enterprise Editionにおいて高速かつ効率的なクエリを実現するためのインデックス活用戦略と、その背後にあるメカニズムについて詳しく解説します。このシリーズのこれまでの動画をご覧になっていない方は、この内容を完全に理解するためにそちらも参照することをお勧めします。

Firestore Enterprise Editionにおけるクエリの基本

Firestore Enterprise Editionでは、Standard Editionと同様にインデックスをスキャンしてクエリを実行できます。インデックススキャンは高速な操作です。加えて、コレクション内のドキュメントを直接スキャンすることも可能ですが、これは低速な操作となります。

インデックスの重要性

インデックスが高速である理由は、それらが順序付けされているか、または特定のプロパティを持っているため、特定の値を効率的に見つけることができるからです。インデックスのサイズ、ひいてはコレクションのサイズに応じて効率的にスケールします。

Firestore Enterprise Editionでは、Standard Editionと同様に、可能な限り作成したインデックスを使用します。これには、カウント集計のようなケースも含まれます。Firestoreは、インデックスがクエリのすべての並べ替えやフィルタリングを完全にカバーしていない場合でも、クエリをサポートするためにインデックスを使用することがあります。これにより、並べ替えやフィルタリングの範囲によっては大幅な高速化が期待できます。

パフォーマンス向上の鍵

パフォーマンスの高いパイプラインを作成するための鍵は、パイプラインの開始時にインデックス付きフィールドを使用してクエリの範囲を絞り込むことです。これにより、高コストなスキャン処理を、必ず少量に限定されたドキュメントのサブセットに対してのみ実行できるようになります。

補足: 結合されていない(アンバウンドな)コレクション全体に対して実行したい並べ替えやフィルタリングがある場合は、並べ替えやフィルタリングを行うフィールドにインデックスが作成されていることを確認する必要があります。

クエリ最適化の具体的な例

いくつかの具体的な例を通して、クエリがどのように動作し、インデックスがパフォーマンスにどう影響するかを見ていきましょう。

1. 単一フィールドでのフィルタリング

Core Operations互換のクエリをPipelines APIで表現する例です。

{