mcpField
O
optimize-database

optimize-database

github.com/furqanisticデータ・データベース870 回インストール10 週間前に更新
リポジトリ

optimize-database について

さまざまなデータベース技術に対応する、エージェント向けの最適化スキルです。リポジトリの根拠に基づいて課題を優先し、安全なリリースと検証を重視します。

主な機能

  1. 01データベース構成と設定を検出
  2. 02整合性、インデックス、クエリ、運用を監査
  3. 03根拠と影響度からボトルネックを順位付け
  4. 04ロールバックを考慮した移行を計画
  5. 05破壊的操作の前に確認を要求

活用シーン

  1. 01遅いデータベースクエリの調査
  2. 02データ整合性とセキュリティリスクのレビュー
  3. 03安全なスキーマまたはインデックス変更の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/furqanistic/aura-skills --skill optimize-database

インストール後、Claude Code で/optimize-databaseを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/database-guide.md

詳細

データベースの最適化

MongoDB、PostgreSQL、MySQL、ORM、特定のホスティングプロバイダーを前提とせず、あらゆるデータベース技術を最適化します。推奨事項を提示する前に、証拠を確認してください。

まず、データレイヤーを特定する

リポジトリを検索し、データベースドライバー、ORM/クエリビルダーパッケージ、接続設定、スキーマ/モデル、マイグレーション、インデックス、制約、リポジトリ、直接記述したクエリ、トランザクション、シード、キャッシュ、検索システム、バックグラウンドジョブ、分析ワークロード、テスト、デプロイ設定、監視を確認します。

以下を特定します。

  • データベースエンジン、バージョン、拡張機能、トポロジー、ホスティング、環境
  • ドライバー、ORM/クエリレイヤー、バージョン、プーリング、リトライ、タイムアウトの設定
  • スキーマ、リレーションシップ、制約、インデックス、マイグレーション、所有権
  • トラフィックの多い読み書き経路、データ量/増加量、同時実行性、レイテンシー、スループット
  • レプリカ、パーティション/シャード、キャッシュ、キュー、バックアップ/復元、保持期間、可観測性

データレイヤーが存在する場合は、現在の設計、適切な選択、測定または証拠に基づく問題、優先順位を付けた安全な改善計画を説明します。データレイヤーが存在しない場合は、製品に求められる整合性、クエリ、スケール、セキュリティ、運用上の要件を踏まえ、最小限で適切な永続化方式を設計します。

データベース、ドライバー、ORMを予告なくアップグレードしないでください。バージョンを変更する前に、リリースノート、互換性、マイグレーション要件、ロールバック方法を確認します。

必須の完全監査

依頼内容が遅いクエリ1つだけに関する場合でも、該当するすべての領域を確認します。

  1. 正確性と整合性 — 型、NULL許容性、一意性、外部キー/参照、検証、不変条件、トランザクション、分離レベル、冪等性、整合性。
  2. インデックス — 不足、未使用、重複、重複範囲、無効、選択性の低さ、過大、書き込み負荷、外部キー、複合インデックスの順序、カバリング、部分、式、テキスト、地理空間、TTL、一意インデックス。
  3. クエリと実行計画 — スキャン、選択性、カーディナリティ推定、結合方式、ソート/グループ化処理、一時処理、N+1呼び出し、クエリの繰り返し、過剰なデータ取得、アプリケーション側のフィルタリング、実行計画の退行。
  4. アクセスパターン — 実際のフィルター、ソート、結合/データの読み込み、集計、書き込み、ホットキー/行、バッチ処理、読み書きの増幅。
  5. ページネーションと上限 — 安定した並び順、最大件数、カーソル/キーセット方式、大きなオフセット、上限のないエクスポート、件数取得クエリのコスト。
  6. スキーマとモデリング — 正規化/非正規化、リレーションシップの所有権、ドキュメントの肥大化、行の幅、大きなフィールド、列挙型、時間/履歴データ、マルチテナントの境界。
  7. 同時実行性 — トランザクション、分離レベル、ロック、デッドロック、楽観的/悲観的制御、競合状態、長時間実行処理、接続枯渇。
  8. 接続 — プールサイズ、リーク、タイムアウト、リトライ、バックオフ、プリペアドステートメント、プロキシ/サーバーレスの動作、グレースフルシャットダウン。
  9. キャッシュ — 必要性、キー、TTL、無効化、整合性、スタンピード対策、ネガティブキャッシュ、メモリ上限、障害時のフォールバック。
  10. マイグレーション — 後方互換性、ロック、テーブルの再書き込み、オンラインインデックス作成、バックフィル、拡張/縮小の段階的デプロイ、検証、ロールバック、デプロイ順序。
  11. 運用 — スロークエリログ、メトリクス、トレーシング、アラート、VACUUM/ANALYZEまたは同等のメンテナンス、統計情報、断片化/肥大化、ストレージ、コスト。
  12. 信頼性 — バックアップ、復元テスト、ポイントインタイムリカバリー、レプリケーション、フェイルオーバー、災害復旧、RPO/RTO、照合。
  13. 成長 — 保持期間、アーカイブ、パーティショニング/シャーディング、レプリカ、マテリアライズドビュー、キュー、データウェアハウス/検索システムの分離、容量予測、スケーリングのしきい値。
  14. セキュリティとプライバシー — 最小権限、認証情報の保存/ローテーション、暗号化、ネットワークアクセス、テナント分離、機密フィールド、監査ログ、削除/保持期間、インジェクションのリスク。

ワークフロー

  1. 実行時間、スループット、リソース使用量、クエリプラン、スロークエリログ、トレース、または代表的なコードやデータを使ってベースラインを確立します。
  2. リクエスト/ジョブ全体を追跡し、すべてのデータベースおよびキャッシュ操作を確認します。
  3. 汎用的なチューニングを適用するのではなく、証拠とユーザーへの影響に基づいてボトルネックに優先順位を付けます。
  4. 書き込みとストレージへの影響を考慮しながら、実際の等価/範囲フィルター、結合、ソート順、一意性、選択性、射影に合わせてインデックスを設計します。
  5. インフラを追加する前に、クエリの形とデータアクセスを改善します。必要なフィールドだけを選択し、処理をバッチ化し、N+1 呼び出しをなくし、上限を設け、適切な場合は安定したカーソル/キーベースのページネーションを使用します。
  6. パフォーマンスを変更する前に、正確性、トランザクション、並行性、テナント/セキュリティの境界を確認します。
  7. より単純な修正では要件を満たせず、測定した要件が運用コストを正当化する場合に限り、キャッシュ、レプリカ、パーティション、検索エンジン、キュー、またはシャーディングを追加します。
  8. スキーマ、制約、インデックス、またはデータの書き換えはすべて、ステージングでの検証、ロールアウトの監視、ロールバック/復旧を伴うマイグレーションとして扱います。
  9. 元の測定を再実施し、変更前後の根拠、トレードオフ、残りの容量上限を報告します。

安全性

明示的な確認なしに、破壊的または不可逆なデータベース操作を実行しないでください。これには、データやインデックスの削除、テーブルの切り捨て、安全性の確認されていない削除、カラムの削除や名前変更、破壊的な型変更、マイグレーションのリセット、再パーティション化、本番キャッシュの無条件なフラッシュが含まれます。正確な環境と対象を確認し、使用可能なバックアップ/復元手段を検証し、代表的なステージングデータでテストを行い、ロックとディスクの余裕を評価したうえで、まずロールバック手順を準備してください。

詳細なガイダンス

データベース固有のインデックスおよびクエリのパターン、ORM に関する助言、コネクションプーリング、キャッシュ、マイグレーションとバックアップのチェックリスト、大規模環境向けの戦略、または詳細なレビュー形式については、references/database-guide.md を参照してください。見出しで検索し、検出されたスタックに関連するセクションだけを読み込んでください。

出力

既存のデータレイヤーが見つかったかどうかを最初に示し、そのエンジン、バージョン、トポロジー、クエリツールを要約します。重大度と、測定された、または想定される影響に基づいて調査結果を報告します。推奨事項ごとに、根拠、期待される効果、トレードオフ、安全なロールアウト方法、ロールバック方法、検証方法を記載します。新しいインデックスを推奨しない場合も、インデックスのレビューを含めます。正確性/データ損失のリスク、セキュリティリスク、パフォーマンスのボトルネック、信頼性の不足、容量に関する懸念、推測に基づくチューニングは、それぞれ分けて記載します。

コメント