テーブル検索を高速化する(インデックス設定)¶
インデックス(索引)とは、データベースのデータを高速に取得することができる仕組みのことです。
データ数が多いテーブルにおいてデータの取得に時間がかかるような場合は、インデックスを適切に設定することで処理時間が改善される場合があります。
ここでは、CELF においてインデックスを設定する方法を説明します。
インデックスを設定するテーブルおよびカラムの検討¶
インデックスはテーブルのカラムを指定して作成します。そのため、どのテーブルのどのカラムに対してインデックスを設定するか検討が必要です。
インデックスを設定する候補となるのは以下のようなテーブルです。
- データ数が多い
- データ取得系アクションやSQLアクション、データ更新アクションの実行に時間がかかっている
上記に該当するテーブルでは、指定した条件におけるデータの絞込に時間がかかっている場合があります。
そのため、このテーブル内の以下に該当するカラムに対してインデックスを設定すると、実行時間が短縮される可能性があります。
- 検索条件(WHERE句)や結合条件(ON句)、ソート条件(ORDER BY句)でよく使用するカラム
- 番号やコードなどの保持している値の種類が多いカラム(フラグや区分など値の種類が少ないカラムは効果が少ない)
また、条件として複数のカラムを指定しているような場合は、それらカラムを指定した複合インデックス(1つのインデックスで複数のカラムを指定したもの)を作成すると、より効果を発揮する場合があります。
複合インデックスでは、データを絞り込めるカラムから順に指定するとより効果的です。条件で指定している順序に合わせる必要はありません。
注意
- インデックスを作成すると、そのテーブルの更新(登録、更新、削除)処理が遅くなる場合があります。そのため、更新が行われるテーブルでは、必要最低限のインデックスのみ作成するようにしてください。
- インデックスはデータ検索時に使用されるため、検索条件などに使用しないカラムにはインデックスは設定しないでください。
- テーブルのデータ量によってインデックスの作成に時間がかかる場合があります。
- インデックス作成中はそのテーブルの検索やデータ登録の要求が待たされるため、インデックス作成はなるべくそのテーブルの利用が少ない時間帯に実施してください。
インデックスを設定する¶
- 管理画面の「テーブル管理」ボタンをクリックし、「テーブル管理」ビューを開きます。
- テーブル検索を高速化するテーブルを選択し、ダブルクリックします。
ちなみに
インデックス設定ができるのは接続先データベースが「CELF データベース(デフォルト)」のテーブルのみです。
- 「インデックス」タブを開きます。
- 「新規インデックス作成」ボタンをクリックして、 「インデックス作成」ダイアログを開きます。
- 検索条件に使用しているカラムに1から始まる順番を指定します。
- 「インデックスを作成」ボタンをクリックします。
参考
※動画内の画面は最新バージョンの CELF とは異なる場合があります。
※動画に音声はついていません。
重要
インデックス設定については、ユーザーに以下の権限が必要です。
- アプリ作成者
- データベース管理者
また、アプリ作成者についてはテーブルに対する以下の権限が必要です。
- 管理
関連キーワード¶
index