- Google AntigravityのAIがスロークエリを自動検出し、最適なインデックスを提案
- スキーマ設計からER図生成、正規化チェックまでAIで効率化
- SES現場のDB改善タスクで即戦力になるプロンプトテンプレート付き
SES現場でデータベース関連のタスクを担当するエンジニアにとって、SQLクエリのパフォーマンス改善やスキーマ設計のレビューは避けて通れない作業です。しかし、数百テーブル規模のデータベースで最適なインデックスを見極めたり、複雑なJOINクエリのボトルネックを特定したりするのは、経験豊富なエンジニアでも時間のかかる作業です。
Google AntigravityのGeminiモデルを活用すれば、これらのデータベース最適化タスクを大幅に効率化できます。本記事では、Antigravityを使ったSQL設計・クエリチューニング・インデックス最適化の実践手法を、SES現場で使えるプロンプト例とともに詳しく解説します。

Google Antigravityのデータベース最適化機能とは
Google Antigravityには、データベース関連の作業を支援する複数のAI機能が搭載されています。Geminiモデルがコードコンテキストを深く理解することで、単なるSQL構文チェックを超えた意味的な最適化提案が可能です。
主要な機能一覧
Antigravityが提供するデータベース最適化機能は、大きく以下の4つに分類されます。
- クエリ解析エンジン: SQLクエリの実行計画をAIが解析し、ボトルネックを特定
- インデックスアドバイザー: テーブル構造とクエリパターンから最適なインデックスを自動提案
- スキーマ設計アシスタント: 要件定義からER図とDDLを自動生成
- マイグレーション支援: スキーマ変更のリスク評価と安全なマイグレーションスクリプトの生成
これらの機能は、Google Antigravityの基本的な使い方を理解していれば、すぐに活用を始められます。
対応データベース
Antigravityは主要なリレーショナルデータベースに対応しています。
| データベース | クエリ解析 | インデックス提案 | スキーマ生成 |
|---|---|---|---|
| PostgreSQL | ✅ | ✅ | ✅ |
| MySQL / MariaDB | ✅ | ✅ | ✅ |
| Cloud SQL (GCP) | ✅ | ✅ | ✅ |
| BigQuery | ✅ | ー | ✅ |
| Cloud Spanner | ✅ | ✅ | ✅ |
GCPサービスとの連携については、API連携ガイドも併せてご確認ください。
スロークエリの自動検出と最適化
SES現場で最も頻繁に発生するデータベース課題が、スロークエリの改善です。Antigravityを使えば、問題のあるクエリを素早く特定し、改善案を得ることができます。
ステップ1: スロークエリログの読み込み
まず、Antigravityにスロークエリログを読み込ませます。プロジェクトのルートディレクトリで以下のようにプロンプトを入力します。
このスロークエリログを分析して、実行時間が長い上位5件のクエリについて
ボトルネックの原因と改善案を提示してください。
対象ファイル: /var/log/mysql/slow-query.log
Antigravityは以下の観点でクエリを解析します。
- フルテーブルスキャンの有無
- 不適切なJOIN順序の検出
- サブクエリのネストが深すぎないか
- WHERE句のインデックス未使用カラムの特定
ステップ2: EXPLAIN結果の解析
特定のクエリについてより詳細な分析が必要な場合は、EXPLAINの結果をAntigravityに渡します。
-- 問題のクエリ例
SELECT o.order_id, c.name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.id
WHERE o.created_at BETWEEN '2026-01-01' AND '2026-03-01'
AND c.prefecture = '東京都'
ORDER BY o.created_at DESC
LIMIT 100;
Antigravityに対して以下のようにプロンプトを入力します。
上記のクエリのEXPLAIN結果を解析し、以下を提案してください:
1. 必要なインデックスの定義(CREATE INDEX文)
2. クエリのリライト案
3. 想定される改善率
ステップ3: 最適化の適用と検証
Antigravityが提案するインデックス定義の例を見てみましょう。
-- Antigravityの提案例
CREATE INDEX idx_orders_created_at_customer
ON orders (created_at, customer_id);
CREATE INDEX idx_customers_prefecture
ON customers (prefecture);
提案されたインデックスを適用する前に、必ずステージング環境でベンチマークを実施してください。AntigravityはCI/CDパイプラインと連携して、マイグレーション適用前の自動テストも設定できます。
AIによるスキーマ設計の自動化
新規プロジェクトやテーブル追加の際、Antigravityはスキーマ設計を強力にサポートします。
要件からER図を自動生成
自然言語で要件を伝えるだけで、AntigravityがER図とDDLを生成します。
ECサイトの注文管理システムのスキーマを設計してください。
要件:
- ユーザーは複数の配送先を持てる
- 商品にはカテゴリ階層がある(最大3階層)
- 注文はステータス管理が必要(仮注文→確定→出荷→配達完了→返品)
- クーポンとポイントの併用が可能
- 月次の売上レポート生成に対応すること
対象DB: PostgreSQL 16
Antigravityは以下を一括で出力します。
- ER図(Mermaid形式)
- DDL(CREATE TABLE文一式)
- 初期データ投入用のINSERT文
- 設計判断の根拠(なぜその正規化レベルを選んだか)
正規化レベルの自動チェック
既存のスキーマに対して正規化の問題を検出することも可能です。
このスキーマの正規化レベルを分析してください。
第3正規形に違反している箇所があれば、修正案を提示してください。
ただし、パフォーマンスのために意図的に非正規化している箇所は
その理由も含めて判断してください。
この機能は、SES現場で既存システムのDB設計をレビューする際に特に役立ちます。プロンプトエンジニアリングのコツについては、プロンプトエンジニアリング完全ガイドを参照してください。
インデックス戦略の最適化
インデックスは適切に設計すればクエリ性能を劇的に向上させますが、過剰なインデックスはINSERT/UPDATE性能を低下させます。Antigravityは、このトレードオフを考慮した最適なインデックス戦略を提案します。
既存インデックスの棚卸し
まず、現在のインデックス状況を把握します。
このデータベースの全インデックスを分析して、以下を報告してください:
1. 使用頻度の低い不要なインデックス(DROP候補)
2. 重複しているインデックス
3. カバリングインデックスに変更すべきもの
4. 部分インデックスが有効なケース
カバリングインデックスの自動提案
頻出クエリパターンを分析し、テーブルアクセスを不要にするカバリングインデックスを提案します。
-- Before: 通常のインデックス
CREATE INDEX idx_orders_status ON orders (status);
-- After: Antigravityが提案するカバリングインデックス
CREATE INDEX idx_orders_status_covering
ON orders (status) INCLUDE (order_id, total_amount, created_at);
この最適化により、SELECT order_id, total_amount, created_at FROM orders WHERE status = 'shipped' のようなクエリでIndex Only Scanが可能になり、I/Oを大幅に削減できます。
マイグレーションのリスク評価と自動化
スキーマ変更は本番環境に直接影響するため、慎重な対応が求められます。Antigravityは安全なマイグレーション戦略を提案します。
ゼロダウンタイムマイグレーション
Antigravityに以下のように依頼すると、ダウンタイムなしのマイグレーション手順を生成します。
以下のスキーマ変更をゼロダウンタイムで実施するための
マイグレーションスクリプトを生成してください。
変更内容:
- usersテーブルにemail_verifiedカラム(BOOLEAN, DEFAULT false)を追加
- ordersテーブルのstatusカラムをENUM型からVARCHAR(50)に変更
- 新規テーブル audit_logs を追加
本番のレコード数: users 500万件、orders 2000万件
Antigravityは以下を考慮した安全なマイグレーションを出力します。
- ロック時間の最小化(ALTER TABLE … ADD COLUMN … DEFAULT は PostgreSQL 11+でロック不要)
- 段階的なデータ移行(バッチ処理による旧データの変換)
- ロールバック手順の自動生成
- 推定実行時間の算出
レガシーシステムからの移行については、レガシーコード移行ガイドも参考になります。
変更影響の自動分析
マイグレーション前に、スキーマ変更がアプリケーションコードに与える影響を自動検出します。
このマイグレーションファイルの変更が、プロジェクト内のORMモデル・
リポジトリクラス・APIエンドポイントに与える影響を分析してください。
変更が必要なファイルをリストアップし、修正案を提示してください。
SES現場で使えるプロンプトテンプレート集
ここでは、SES現場のDB関連タスクですぐに使えるAntigravityプロンプトテンプレートをまとめます。
パフォーマンス調査テンプレート
【タスク】本番DBのパフォーマンス調査
【対象DB】PostgreSQL 15 / MySQL 8.0(該当するものを記入)
【症状】(例: 特定の画面で3秒以上のレスポンスタイムが発生)
【対象テーブル】(テーブル名とレコード数概算)
【制約】(例: テーブルロックは不可、メンテナンスウィンドウは日曜深夜のみ)
上記の条件で、以下を実施してください:
1. 問題クエリの特定と原因分析
2. インデックス追加・変更の提案(DDL付き)
3. クエリリライト案
4. 改善後の推定パフォーマンス
5. 適用手順とロールバック手順
テーブル設計レビューテンプレート
以下のCREATE TABLE文をレビューしてください。
観点: 正規化、命名規則、データ型の適切さ、制約の網羅性、
将来の拡張性、パフォーマンスへの影響
(CREATE TABLE文を貼り付け)
これらのテンプレートは、コードレビュー自動化の手法と組み合わせることで、PR内のSQLファイル変更を自動レビューする仕組みも構築できます。
BigQueryとの連携による大規模データ分析
GCPユーザーにとって、AntigravityとBigQueryの連携は特に強力です。
コスト見積もりとクエリ最適化
BigQueryは処理データ量に応じた従量課金のため、クエリの書き方がコストに直結します。
このBigQueryクエリのコストを見積もり、
処理データ量を削減するための最適化案を提示してください。
パーティションプルーニングとクラスタリングの活用も検討してください。
Antigravityは以下を分析します。
- SELECT * の排除(必要カラムのみ指定)
- パーティションフィルタの有無
- マテリアライズドビューの活用余地
- 近似集計関数(APPROX_COUNT_DISTINCT等)への置換可能性
コスト最適化の全般的なアプローチについては、コスト最適化ガイドをご覧ください。
まとめ:AIでデータベース最適化を効率化しよう
Google Antigravityを活用したデータベース最適化のポイントを振り返ります。
- スロークエリの検出と改善をAIが自動で実施し、チューニング作業を大幅に短縮
- スキーマ設計を自然言語から自動生成し、正規化チェックもAIに任せられる
- インデックス戦略の最適化で、不要なインデックスの削除とカバリングインデックスの活用を提案
- ゼロダウンタイムマイグレーションの安全な手順をAIが自動生成
- BigQuery連携でクエリコストの最適化も実現
SES現場でのデータベース関連タスクは、Antigravityの導入により工数を40〜60%削減できると見込まれます。まずは入門ガイドでセットアップを済ませ、日常のDB作業にAIアシスタントを取り入れてみてください。
出典・参考資料: