Skip to content

インデックス、権限、その他 ​

このガイドでは、テーブルに対する高性能なインデックス設計、アクセス制御構文(DCL)、物理ストレージエンジン設定、Routine コード雛形の生成手順を解説します。

概要 ​

カラムの基本定義が完了した後、検索性能のチューニング、権限の付与、低レイヤーのストレージパラメーターを最適化し、本番環境に即した堅牢なテーブル定義を完成させます。


設定手順とポイント ​

1. インデックス設定(Index & Key) ​

「インデックス設定」タブを開き、検索の高速化と一意性制約を定義します。

  • 主キー(Primary Key)の追加: 主キーとするカラムを選択します(通常テーブルあたり1つ)。
  • 一意インデックス(Unique Index)の追加: メールアドレスや電話番号、テナント識別子などの業務的一意性を保証します。
  • 通常インデックス(Index)の追加: カラムサジェストから単一または複数のカラムを選択し、複合インデックスを構成します。
  • カスタムインデックス名: インデックス名を直接編集できます。未指定の場合は方言の慣例(例: idx_table_columns)に従って自動命名されます。

2. AI インデックス最適化アドバイザー ​

高頻度クエリに対する最適な複合インデックスの設計に迷った場合:

  1. **「AI インデックス顧問」**ボタンをクリックします。
  2. 業務で使用する代表的な SQL またはスロークエリの断片を貼り付けます。
  3. AI がテーブル構造、既存インデックス、クエリ条件を総合分析し、不足インデックスの提案、不要な重複インデックスの検知、カラム順序の最適化、クエリ書き換え提案を出力します。
  4. 採用したい提案の**「インデックスを追加」**をクリックすると、ワンクリックで設定に反映され DDL が更新されます。

3. 権限設定(DCL アクセス制御) ​

「権限設定」タブでデータへのアクセス権限を管理します。

  • 権限を付与するユーザー名またはロール名(例: app_user、readonly_role)を入力して追加します。
  • 右側の「権限 DCL」パネルに、標準的な GRANT SELECT, INSERT, UPDATE, DELETE ON table TO user; 文が自動生成されます。
  • Schema Name が指定されている場合、権限付与文にもスキーマ修飾テーブル名が自動的に反映されます。

4. その他設定(ストレージオプション & Routine) ​

「その他設定」タブを開き、トグルを有効にすると低レイヤーのパラメーターを設定できます。

  • エンジンと文字コード: MySQL / MariaDB の ENGINE(例: InnoDB)、CHARACTER SET(例: utf8mb4)、COLLATE を設定。
  • 物理ストレージパラメーター: テーブルスペース(TABLESPACE)、PostgreSQL の fillfactor、Oracle の PCTFREE や INITRANS などの方言固有パラメーター。
  • Routine コード雛形: ストアドプロシージャ(Procedure)、関数(Function)、トリガー(Trigger)のテンプレートを選択し、右側パネルに雛形を出力します。

完了のチェックリスト ​

  • [ ] 主要な検索・フィルターカラムに適切なインデックスが配置され、一意カラムにユニーク制約がある。
  • [ ] インデックス名に重複がなく、カラムが空の不要インデックスが存在しない。
  • [ ] 権限を付与する対象が設定され、右側の DCL 文が正しく生成されている。
  • [ ] その他設定を有効にした場合、DDL の末尾に対応するパラメーターが出力されている。

注意事項 ​

その他設定の反映

その他設定タブで値を入力しても DDL に反映されない場合は、タブ上部の**「その他設定を有効化」トグル**がオンになっているか確認してください。

  • 主キーの単一性: リレーショナルデータベースでは通常1テーブルにつき主キーは1つです。既存の主キーがある場合は重複して追加しないでください。
  • DCL が空の場合: 権限付与対象を追加していない場合、DCL パネルが空になるのは正常な動作であり、DDL の生成には影響しません。