CREATE INDEX Amazon の コマンド QLDB - Amazon Quantum 台帳データベース (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CREATE INDEX Amazon の コマンド QLDB

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL」を参照してください。

Amazon ではQLDB、 CREATE INDEX コマンドを使用して、テーブルのドキュメントフィールドのインデックスを作成します。

特定のテーブルでこの PartiQL コマンドを実行するためのアクセスを制御する方法については、「Amazon での標準アクセス許可モードの開始方法 QLDB」を参照してください。

重要

QLDB では、ドキュメントを効率的に検索するためにインデックスが必要です。インデックスがない場合、 はドキュメントを読み取るときに完全なテーブルスキャンを実行QLDBする必要があります。これにより、同時実行の競合やトランザクションのタイムアウトなど、大きなテーブルでパフォーマンスの問題が発生する可能性があります。

テーブルスキャンを回避するには、インデックス付きフィールドまたはドキュメント ID で等価演算子 (= または IN) を使用する WHERE 述語句でステートメントを実行する必要があります。詳細については、「クエリパフォーマンスの最適化」を参照してください。

インデックスを作成する際には、以下の制約があることに注意してください。

  • インデックスは 1 つのトップレベルフィールドでのみ作成できます。複合、ネスト、一意、および関数ベースのインデックスはサポートされていません。

  • 任意の Ion データ型 (liststruct など) でインデックスを作成できます。ただし、Ion のデータ型に関わらず、Ion 値全体の等価によってインデックス付けされたルックアップのみを実行できます。例えば、list 型をインデックスとして使用すると、リスト内の 1 つの項目でインデックス付けされたルックアップは実行できません。

  • クエリのパフォーマンスは、等価述語 (WHERE indexedField = 123WHERE indexedField IN (456, 789) など) を使用する場合にのみ向上します。

    QLDB は、クエリ述語の不等式を尊重しません。そのため、範囲でフィルタリングされるスキャンは実装されていません。

  • インデックス付きフィールドの名前は大文字と小文字の区別があり 128 文字以下で指定します。

  • でのインデックスの作成QLDBは非同期です。空でないテーブルでのインデックスの作成を完了するのにかかる時間は、テーブルサイズによって異なります。詳細については、「インデックスの管理」を参照してください。

構文

CREATE INDEX ON table_name (field)

パラメータ

table_name

インデックスを作成するテーブルの名前。このテーブルは既存であることが必要です。

テーブル名では、大文字と小文字が区別されます。

field

インデックスを作成するドキュメントのフィールド名。このフィールドは最上位の属性であることが必要です。

インデックス付きフィールドの名前は大文字と小文字の区別があり 128 文字以下で指定します。

任意の Amazon Ion データ型 (liststruct など) でインデックスを作成できます。ただし、Ion のデータ型に関わらず、Ion 値全体の等価によってインデックス付けされたルックアップのみを実行できます。例えば、list 型をインデックスとして使用すると、リスト内の 1 つの項目でインデックス付けされたルックアップは実行できません。

戻り値

tableId - インデックスを作成したテーブルの一意の ID。

CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)

ドライバーを使用したプログラムでの実行

QLDB ドライバーを使用してこのステートメントをプログラムで実行する方法については、「ドライバーの開始方法」の以下のチュートリアルを参照してください。