CREATEINDEX亚马逊中的命令 QLDB - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CREATEINDEX亚马逊中的命令 QLDB

重要

终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

在 Amazon 中QLDB,使用CREATE INDEX命令为表中的文档字段创建索引。

要了解如何控制对特定表运行此 PartiQL 命令的访问权限,请参阅。开始使用 Amazon 中的标准权限模式 QLDB

重要

QLDB需要索引才能有效地查找文档。如果没有索引,则QLDB需要在读取文档时进行全表扫描。这可能会导致大型表出现性能问题,包括并发冲突与事务超时。

为避免表扫描,必须在索引字段或文档 ID 上使用相等运算符(=IN)运行带有WHERE谓词子句的语句。有关更多信息,请参阅 优化查询性能

创建索引时应注意以下限制:

  • 只能在单个顶级字段创建索引。不支持复合索引、嵌套索引、唯一索引以及基于函数的索引。

  • 您可以为任何 Ion 数据类型创建索引,其中包括 liststruct。但是,无论 Ion 类型如何,您都只能通过整个 Ion 值进行索引查找。例如,使用 list 类型作为索引时,不能按列表中的一个项目进行索引查找。

  • 只有使用相等谓词时,查询性能才会得到改善;例如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 类型作为索引时,不能按列表中的一个项目进行索引查找。

返回值

tableId — 您在其上创建索引的表的唯一 ID。

示例

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

使用驱动程序以编程方式运行

要了解如何使用驱动程序以编程方式运行此语句,请参阅QLDB驱动程序入门中的以下教程: