CREATEINDEXcomando in Amazon QLDB - Database Amazon Quantum Ledger (Amazon) QLDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

CREATEINDEXcomando in Amazon QLDB

Importante

Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto il 31/07/2025. Per ulteriori dettagli, consulta Migrare un Amazon QLDB Ledger ad Amazon Aurora Postgre. SQL

In AmazonQLDB, usa il CREATE INDEX comando per creare un indice per un campo documento su una tabella.

Per informazioni su come controllare l'accesso per eseguire questo comando PartiQL su tabelle specifiche, vedere. Guida introduttiva alla modalità di autorizzazione standard in Amazon QLDB

Importante

QLDBrichiede un indice per cercare in modo efficiente un documento. Senza un indice, QLDB deve eseguire una scansione completa della tabella durante la lettura dei documenti. Ciò può causare problemi di prestazioni su tabelle di grandi dimensioni, inclusi conflitti di concorrenza e timeout delle transazioni.

Per evitare la scansione delle tabelle, è necessario eseguire istruzioni con una clausola di WHERE predicato utilizzando un operatore di uguaglianza (=oIN) su un campo indicizzato o un ID di documento. Per ulteriori informazioni, consulta Ottimizzazione delle prestazioni delle query.

Tenete presente i seguenti vincoli durante la creazione degli indici:

  • Un indice può essere creato solo su un singolo campo di primo livello. Gli indici compositi, annidati, unici e basati su funzioni non sono supportati.

  • È possibile creare un indice su qualsiasi tipo di dati Ion, inclusi e. list struct Tuttavia, è possibile eseguire la ricerca indicizzata solo in base all'uguaglianza dell'intero valore Ion indipendentemente dal tipo di ione. Ad esempio, quando si utilizza un list tipo come indice, non è possibile eseguire una ricerca indicizzata per un elemento all'interno dell'elenco.

  • Le prestazioni delle query sono migliorate solo quando si utilizza un predicato di uguaglianza; ad esempio, o. WHERE indexedField = 123 WHERE indexedField IN (456, 789)

    QLDBnon rispetta le disuguaglianze nei predicati delle query. Di conseguenza, le scansioni con filtro per intervallo non sono implementate.

  • I nomi dei campi indicizzati fanno distinzione tra maiuscole e minuscole e possono contenere un massimo di 128 caratteri.

  • La creazione dell'indice in QLDB è asincrona. Il tempo necessario per completare la creazione di un indice su una tabella non vuota varia a seconda delle dimensioni della tabella. Per ulteriori informazioni, consulta Gestione degli indici.

Sintassi

CREATE INDEX ON table_name (field)

Parametri

table_name

Il nome della tabella in cui si desidera creare l'indice. La tabella deve già essere presente.

Per il nome del file è prevista la distinzione tra maiuscole e minuscole.

field

Il nome del campo del documento per il quale creare l'indice. Il campo deve essere un attributo di primo livello.

I nomi dei campi indicizzati fanno distinzione tra maiuscole e minuscole e possono contenere un massimo di 128 caratteri.

Puoi creare un indice su qualsiasi tipo di dati Amazon Ion, inclusi list estruct. Tuttavia, puoi eseguire la ricerca indicizzata solo in base all'uguaglianza dell'intero valore Ion indipendentemente dal tipo di ione. Ad esempio, quando si utilizza un list tipo come indice, non è possibile eseguire una ricerca indicizzata per un elemento all'interno dell'elenco.

Valore restituito

tableId— L'ID univoco della tabella su cui è stato creato l'indice.

Esempi

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

Esecuzione a livello di codice utilizzando il driver

Per informazioni su come eseguire questa istruzione a livello di codice utilizzando il QLDB driver, consulta i seguenti tutorial in Guida introduttiva al driver: