HSQLDB-インデックス

A database indexテーブル内の操作の速度を向上させるデータ構造です。インデックスは、1つ以上の列を使用して作成でき、迅速なランダムルックアップとレコードへのアクセスの効率的な順序付けの両方の基礎を提供します。

インデックスを作成するときは、SQLクエリを作成するために使用される列を考慮し、それらの列に1つ以上のインデックスを作成する必要があります。

実際には、インデックスはテーブルのタイプでもあり、主キーまたはインデックスフィールドと、各レコードへのポインタを実際のテーブルに保持します。

ユーザーはインデックスを見ることができません。これらはクエリを高速化するために使用され、データベース検索エンジンがレコードをすばやく見つけるために使用されます。

INSERTステートメントとUPDATEステートメントは、インデックスを持つテーブルでは時間がかかりますが、SELECTステートメントはこれらのテーブルでより高速に実行されます。その理由は、挿入または更新中に、データベースがインデックス値も挿入または更新する必要があるためです。

シンプルでユニークなインデックス

テーブルに一意のインデックスを作成できます。Aunique index2つの行が同じインデックス値を持つことができないことを意味します。以下は、テーブルにインデックスを作成するための構文です。

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);

1つ以上の列を使用してインデックスを作成できます。たとえば、tutorial_authorを使用してtutorials_tblにインデックスを作成します。

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

テーブルに簡単なインデックスを作成できます。クエリからUNIQUEキーワードを省略して、単純なインデックスを作成するだけです。Asimple index テーブル内の重複値を許可します。

列の値に降順でインデックスを付ける場合は、列名の後に予約語DESCを追加できます。

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

INDEXを追加および削除するALTERコマンド

テーブルにインデックスを追加するためのステートメントには4つのタイプがあります-

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) −このステートメントは、PRIMARY KEYを追加します。これは、インデックス付きの値が一意である必要があり、NULLであってはならないことを意味します。

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) −このステートメントは、値が一意でなければならないインデックスを作成します(NULL値は複数回表示される場合があります)。

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) −これにより、任意の値が複数回表示される可能性のある通常のインデックスが追加されます。

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) −これにより、テキスト検索の目的で使用される特別なFULLTEXTインデックスが作成されます。

以下は、既存のテーブルにインデックスを追加するためのクエリです。

ALTER TABLE testalter_tbl ADD INDEX (c);

DROP句をALTERコマンドと一緒に使用すると、任意のINDEXを削除できます。以下は、上記で作成したインデックスを削除するためのクエリです。

ALTER TABLE testalter_tbl DROP INDEX (c);

INDEX情報の表示

SHOW INDEXコマンドを使用して、テーブルに関連付けられているすべてのインデックスを一覧表示できます。垂直形式の出力(\ Gで指定)は、長い行の折り返しを避けるために、このステートメントで役立つことがよくあります。

以下は、テーブルに関するインデックス情報を表示するための一般的な構文です。

SHOW INDEX FROM table_name\G