

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

# Amazon QLDB のインデックス作成コマンド
<a name="ql-reference.create-index"></a>

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

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

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

**重要**  
ドキュメントを効率的に検索するには、インデックスが必要です。インデックスがないと、QLDB はドキュメントを読み取るときにテーブルスキャンを実行する必要があります。これにより、同時実行の競合やトランザクションのタイムアウトなど、大きなテーブルでパフォーマンスの問題が発生する可能性があります。  
テーブルスキャンを回避するには、インデックス付きフィールドまたはドキュメント ID で**等価演算子 (`=` または `IN`) を使用する `WHERE` 述語句でステートメントを実行する必要があります。詳細については、「[クエリパフォーマンスの最適化](working.optimize.md)」を参照してください。

インデックスを作成する際には、以下の制約があることに注意してください。
+ インデックスは 1 つのトップレベルフィールドでのみ作成できます。複合、ネスト、一意、および関数ベースのインデックスはサポートされていません。
+ 任意の [Ion データ型](ql-reference.data-types.md) (`list`、`struct` など) でインデックスを作成できます。ただし、Ion のデータ型に関わらず、Ion 値全体の等価によってインデックス付けされたルックアップのみを実行できます。例えば、`list` 型をインデックスとして使用すると、リスト内の 1 つの項目でインデックス付けされたルックアップは実行できません。
+ クエリのパフォーマンスは、等価述語 (`WHERE indexedField = 123`、`WHERE indexedField IN (456, 789)` など) を使用する場合にのみ向上します。

  QLDB では、クエリの述語で不等式はサポートされていません。そのため、範囲でフィルタリングされるスキャンは実装されていません。
+ インデックス付きフィールドの名前は大文字と小文字の区別があり 128 文字以下で指定します。
+ QLDB でのインデックス作成は非同期です。空でないテーブルでのインデックスの作成を完了するのにかかる時間は、テーブルサイズによって異なります。詳細については、「[インデックスの管理](working.manage-indexes.md)」を参照してください。

**Topics**
+ [構文](#ql-reference.create-index.syntax)
+ [パラメータ](#ql-reference.create-index.parameters)
+ [戻り値](#ql-reference.create-index.return)
+ [例](#ql-reference.create-index.examples)
+ [ドライバーを使用したプログラムでの実行](#ql-reference.create-index.driver)

## 構文
<a name="ql-reference.create-index.syntax"></a>

```
CREATE INDEX ON table_name (field)
```

## パラメータ
<a name="ql-reference.create-index.parameters"></a>

**table\$1name****  
インデックスを作成するテーブルの名前。このテーブルは既存であることが必要です。  
テーブル名では、大文字と小文字が区別されます。

***field***  
インデックスを作成するドキュメントのフィールド名。このフィールドは最上位の属性であることが必要です。  
インデックス付きフィールドの名前は大文字と小文字の区別があり 128 文字以下で指定します。  
任意の [Amazon Ion データ型](ql-reference.data-types.md) (`list`、`struct` など) でインデックスを作成できます。ただし、Ion のデータ型に関わらず、Ion 値全体の等価によってインデックス付けされたルックアップのみを実行できます。例えば、`list` 型をインデックスとして使用すると、リスト内の 1 つの項目でインデックス付けされたルックアップは実行できません。

## 戻り値
<a name="ql-reference.create-index.return"></a>

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

## 例
<a name="ql-reference.create-index.examples"></a>

```
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
```

```
CREATE INDEX ON Vehicle (VIN)
```

## ドライバーを使用したプログラムでの実行
<a name="ql-reference.create-index.driver"></a>

QLDB ドライバーを使用してこのステートメントをプログラムで実行する方法については、「ドライバーの開始方法**」の以下のチュートリアルを参照してください。
+ Java: [クイックスタートチュートリアル](driver-quickstart-java.md) \$1 [クックブックリファレンス](driver-cookbook-java.md)
+ .NET: [クイックスタートチュートリアル](driver-quickstart-dotnet.md) \$1 [クックブックリファレンス](driver-cookbook-dotnet.md)
+ Go: [クイックスタートチュートリアル](driver-quickstart-golang.md) \$1 [クックブックリファレンス](driver-cookbook-golang.md)
+ Node.js: [クイックスタートチュートリアル](driver-quickstart-nodejs.md) \$1 [クックブックリファレンス](driver-cookbook-nodejs.md)
+ Python: [クイックスタートチュートリアル](driver-quickstart-python.md) \$1 [クックブックリファレンス](driver-cookbook-python.md)