本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CREATEINDEXAmazon 中的命令 QLDB
重要
支援結束通知:現有客戶將能夠使用 Amazon,QLDB直到 2025 年 7 月 31 日終止支援為止。有關更多詳細信息,請參閱將 Amazon QLDB 分類帳遷移到 Amazon Aurora 郵政. SQL
在 Amazon 中QLDB,使用CREATE INDEX
命令為表上的文檔字段創建索引。
若要瞭解如何控制在特定資料表上執行此 PartiQL 命令的存取權,請參閱開始使用 Amazon 的標準許可模式 QLDB。
重要
QLDB需要索引才能有效地查找文檔。如果沒有索引,則QLDB需要在閱讀文檔時進行全表掃描。這可能會造成大型資料表的效能問題,包括並行衝突和交易逾時。
若要避免資料表掃描,您必須在索引欄位或文件 ID 上使用相等運算子 (=
或IN
) 執行具有述WHERE
詞子句的陳述式。如需詳細資訊,請參閱 最佳化查詢效能。
建立索引時,請注意下列條件約束:
-
索引只能在單一頂層欄位上建立。不支援複合、巢狀、唯一和以函數為基礎的索引。
-
您可以在任何 Ion 資料類型上建立索引,包括
list
和struct
。但是,無論 Ion 類型如何,您都只能通過整個 Ion 值的相等性來進行索引查找。例如,當使用list
類型作為索引時,您不能通過列表中的一個項目進行索引查找。 -
只有在您使用相等述詞時才會改善查詢效能;例如,
WHERE indexedField = 123
或WHERE indexedField IN (456, 789)
。QLDB不尊重查詢謂詞中的不等式。因此,範圍篩選的掃描不會實作。
-
索引欄位的名稱區分大小寫,最多可包含 128 個字元。
-
中的索引建立QLDB是非同步的。在非空白資料表上完成建立索引所需的時間會因資料表大小而有所不同。如需詳細資訊,請參閱 管理索引。
語法
CREATE INDEX ON
table_name
(field
)
參數
table_name
-
要在其中創建索引的表的名稱。索資料表必須已存在。
資料表名稱區分大小寫。
field
-
要為其建立索引的文件欄位名稱。欄位必須是頂層屬性。
索引欄位的名稱區分大小寫,最多可包含 128 個字元。
您可以在任何 Amazon Ion 資料類型上建立索引,包括
list
和struct
。但是,無論 Ion 類型如何,您都只能通過整個 Ion 值的相等性來進行索引查找。例如,當使用list
類型作為索引時,您不能通過列表中的一個項目進行索引查找。
傳回值
tableId
— 您建立索引之資料表的唯一 ID。
範例
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)
以編程方式使用驅動程序
若要了解如何以程式設計方式使用QLDB驅動程式執行此陳述式,請參閱開始使用驅動程式中的下列教學課程: