4D v16.3インデックスの作成と変更 |
||
|
4D v16.3
インデックスの作成と変更
インデックスの作成と変更
頻繁に検索や並び替えで使用されるフィールドに、インデックスを設定できます。例えば姓、会社名、製品名などフィールドを使用してレコードの検索や並び替えを行う場合、これらのフィールドにインデックスを設定することができます。またこのプロパティはテーブル間でのリレーションを確立するためにも使用されます。この点に関する詳細はリレーションの作成と変更を参照してください。 フィールドにインデックスが設定されると、4Dはそのフィールド用に内部的なインデックステーブルを作成します。このテーブルを使用して、4Dはそのフィールドに対する素早い検索や並び替えを実行します。インデックスが設定されていないフィールドを使用して検索や並び替えを行う場合、4Dはシーケンシャルにデータをロードし、レコード毎順番に評価します。インデックスを使用すれば、4Dはすべてのレコードを読み込むことなく検索や並び替えを行えます。 インデックスは文字、テキスト、日付、時間、整数、倍長整数、整数64bit、実数、フロート、ピクチャー、そしてオブジェクト型に設定できます。レコードの作成、変更、削除を行うと、4Dは自動でそのインデックステーブルを更新します。既に存在するフィールドにインデックスを作成すると、4Dは自動で既存のデータをインデックス化します。必要なだけフィールドにインデックスを設定できます。 各インデックステーブルの上限は次のとおりです:
すべてのフィールドにインデックスを設定するようなことはしないでください。インデックスはデータベースのサイズを増大させ、ディスク上のスペースを消費します。またインデックスを設定すればするほど、レコードの保存に時間を要するようになる点に留意してください。4Dはレコードを受け入れるたびにインデックステーブルを更新しなければならないためです。 データベースを上位バージョンに変換する際やデータ圧縮時など、特定の処理を行った際にもインデックスが再構築されます。 ストラクチャーエディター中で、インデックスが設定されたフィールドは太字で表示されます。 4Dでは3種類のインデックスタイプを提供しています。そのいずれを選択するかは一般的に期待する結果と、フィールドに現れるデータに基づきます。各インデックスタイプの説明は以下の通りです:
標準インデックスはデータベース処理の速度を向上する目的で使用されます(標準のインデックスは、キーワードインデックスやコンポジットインデックスとは異なり、一般のインデックスを参照します)。4Dは2つのタイプの標準インデックス、BツリーとクラスターBツリーを提供します。
注: テキストタイプのフィールドに割り当てたBツリーインデックスは、フィールドの最初の1024文字 (最大) を格納します。そのため、1024文字を超える検索を、インデックスを使用して行うと失敗します。 インデックスアーキテクチャーの選択を容易にするために、自動オプションを選択できます。この場合4Dは自動でデータのタイプに応じインデックスのタイプを選択します。 複合インデックスでは、レコード毎に2つ以上のフィールドの値の合成値を格納します。よく見られる例はFirstName+LastNameフィールドの複合インデックスです。この場合、“Peter Smith”の検索は (まず“Smith”を検索し次に“Peter”を検索する) 標準の検索よりも速くなります。 4Dは検索や並び替えの際に自動で複合インデックスを利用します。例えば複合インデックス“City+ZipCode”が存在するとき、“lastname=carter & city=new york & zipcode =102@”のような検索を行うと、自動でその複合インデックスが利用されます。 キーワードインデックスは文字、テキスト、およびピクチャーフィールドに使用することができます。
キーワードインデックスに含まれるキーワードのリストを取得するためにDISTINCT VALUESコマンドを使用できます。 テキストやピクチャーフィールドのキーワードインデックスは % 演算子で使用します。インデックスの値を明示的に使用するには、この演算子をクエリまたは並び替えフォーミュラで使用しなければなりません。例えば: QUERY([PICTURES];[PICTURES]Photos %"cats") この書式はすべてのクエリおよび並び替えコマンドで同様に動作します : QUERY BY FORMULA, QUERY SELECTION, ORDER BY等。 % 演算子の動作については 4D ランゲージリファレンスマニュアル 比較演算子 を参照してください。 ストラクチャーエディターのツールバーにあるをクリックすると、インデックスリストウィンドウが表示されます。このウィンドウはタイプに関わらず、ストラクチャのすべてのインデックスを表示します: ボタンはインデックスプロパティダイアログボックスを表示します。
インデックスの作成方法はタイプにより異なります。さらにインデックスは直接あるいはダイアログを使用して作成できます。 標準のインデックスを直接作成する:
キーワードインデックスを直接作成する:
複合インデックスを作成、あるいは他のタイプのインデックスをインデックス作成ダイアログで作成するには:
インデックスにフィールドを追加するには ボタンをクリックします。選択したテーブルのフィールドリストが表示され、インデックスに追加するフィールドを指定できます。
インデックスからフィールドを削除するには、リスト中でそれを選択し、ボタンをクリックします。 利用しなくなったインデックスはいつでも削除できます。削除はストラクチャーエディター上で直接、またはインデックスリストウィンドウ上で行うことができます。インデックスリストウィンドウに関する詳細は、前述の"インデックスリスト"を参照してください。 標準インデックスを削除するには:
キーワードインデックスを削除するには:
複合インデックスの削除はインデックスリストウィンドウのボタンを使用してのみ削除できます。
|
プロパティ
プロダクト: 4D
履歴
ARTICLE USAGE
デザインリファレンス ( 4D v16) |