CREATEINDEXcomando en Amazon QLDB - Base de datos Amazon Quantum Ledger (AmazonQLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

CREATEINDEXcomando en Amazon QLDB

importante

Aviso de fin del soporte: los clientes actuales podrán utilizar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre.

En AmazonQLDB, usa el CREATE INDEX comando para crear un índice para un campo de documento de una tabla.

Para obtener información sobre cómo controlar el acceso para ejecutar este comando PartiQL en tablas específicas, consulte Cómo empezar con el modo de permisos estándar en Amazon QLDB.

importante

QLDBrequiere un índice para buscar un documento de manera eficiente. Sin un índice, QLDB necesita escanear una tabla completa al leer los documentos. Esto puede provocar problemas de rendimiento en tablas grandes, como conflictos de concurrencia y tiempos de espera de las transacciones.

Para evitar el escaneado de tablas, debe ejecutar las instrucciones con una cláusula de predicado WHERE usando un operador de igualdad (= o IN) en un campo indexado o en un ID de documento. Para obtener más información, consulte Optimización del rendimiento de las consultas.

Tenga en cuenta las siguientes restricciones al crear índices:

  • Solo se puede crear un índice en un único campo de nivel superior. No se admiten índices compuestos, anidados, únicos ni basados en funciones.

  • Puede crear un índice en cualquier tipo de datos de Ion, incluidos list y struct. Sin embargo, solo puede realizar la búsqueda indexada igualando el valor total de Ion, independientemente del tipo de Ion. Por ejemplo, cuando se utiliza un tipo list como índice, no se puede realizar una búsqueda indexada por un elemento de la lista.

  • El rendimiento de las consultas solo mejora cuando se utiliza un predicado de igualdad; por ejemplo, WHERE indexedField = 123 o WHERE indexedField IN (456, 789).

    QLDBno respeta las desigualdades en los predicados de las consultas. Como resultado, no se implementan los escaneos filtrados por rango.

  • Los nombres de los campos indexados distinguen entre mayúsculas y minúsculas y pueden tener 128 caracteres como máximo.

  • La creación del índice en QLDB es asíncrona. La cantidad de tiempo que tarda en crearse un índice en una tabla que no está vacía varía según el tamaño de la tabla. Para obtener más información, consulte Administrar índices.

Sintaxis

CREATE INDEX ON table_name (field)

Parámetros

table_name

Nombre de la tabla en la que desea crear el índice. La tabla debe existir previamente.

El nombre de la tabla distingue entre mayúsculas y minúsculas.

field

El nombre del campo del documento para el que se va a crear el índice. El campo debe ser un atributo de nivel superior.

Los nombres de los campos indexados distinguen entre mayúsculas y minúsculas y pueden tener 128 caracteres como máximo.

Puede crear un índice en cualquier tipo de datos de Amazon Ion, incluidos list y struct. Sin embargo, solo puede realizar la búsqueda indexada igualando el valor total de Ion, independientemente del tipo de Ion. Por ejemplo, cuando se utiliza un tipo list como índice, no se puede realizar una búsqueda indexada por un elemento de la lista.

Valor devuelto

tableId: el identificador único de la tabla en la que creó el índice.

Ejemplos

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

Ejecución mediante programación con el controlador

Para aprender a ejecutar esta sentencia mediante programación mediante el QLDB controlador, consulte los siguientes tutoriales en Introducción al controlador: