クエリ結果キャッシュの保存単位と動作原理
BigQueryは、クエリの結果を自動的にキャッシュします。 同一のクエリを再実行した場合、実際にデータをスキャンせずにキャッシュから結果を返すため、 コストが無料で、応答が超高速になります。
BigQueryのキャッシュは、クエリのテキスト(SQL文字列)をキーとして保存されます。 内部的には、クエリテキストのハッシュ値をキーとして、 そのクエリの実行結果全体を値として保存します。
| product_id | total |
|---|---|
| PROD-123 | 150,000 |
| PROD-456 | 120,000 |
| ... | ... |
| 項目 | 詳細 |
|---|---|
| キャッシュの保存場所 | Google管理の分散キャッシュシステム(ユーザーからは不可視) |
| キャッシュのサイズ制限 | 128 MB(圧縮後)。超える場合は自動的にキャッシュされない |
| キャッシュの共有 | 同じプロジェクト内の全ユーザーで共有される |
| パーティション | パーティションが異なれば別のクエリとして扱われる |
| リージョン | データセットのロケーションごとに独立したキャッシュ |
| 暗号化 | キャッシュデータも暗号化されて保存される |