Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Commande CREATE INDEX dans Amazon QLDB
Dans Amazon QLDB, utilisez laCREATE INDEX
commande pour créer un index pour un champ de document dans une table.
Pour savoir comment contrôler l'accès afin d'exécuter cette commande PartiQL sur des tables spécifiques, consultezCommencer à utiliser le mode d'autorisation standard dans Amazon QLDB.
Important
QLDB a besoin d'un index pour rechercher efficacement un document. Sans index, QLDB doit effectuer une analyse complète de la table lors de la lecture de documents. Cela peut entraîner des problèmes de performances sur des tables de grande taille, notamment des conflits de simultanéité et des délais de transaction.
Pour éviter de scanner des tables, vous devez exécuter des instructions avec une clause deWHERE
prédicat à l'aide d'un opérateur d'égalité (=
ouIN
) sur un champ indexé ou un identifiant de document. Pour plus d'informations, veuillez consulter Optimisation des performances des données.
Tenez compte des contraintes suivantes lors de la création d'index :
-
Un index ne peut être créé que sur un seul champ de niveau supérieur. Les index composites, imbriqués, uniques et basés sur des fonctions ne sont pas pris en charge.
-
Vous pouvez créer un index sur tous les types de données Ion, y compris
list
etstruct
. Toutefois, vous ne pouvez effectuer la recherche indexée que par égalité de la valeur totale des ions, quel que soit le type d'ion. Par exemple, lorsque vous utilisez unlist
type comme index, vous ne pouvez pas effectuer de recherche indexée par un élément de la liste. -
Les performances des requêtes ne sont améliorées que lorsque vous utilisez un prédicat d'égalité ; par exemple,
WHERE indexedField = 123
ouWHERE indexedField IN (456, 789)
.QLDB ne respecte pas les inégalités dans les prédicats de requête. Par conséquent, les analyses filtrées par plage de valeurs ne sont pas mises en œuvre.
-
Les noms des champs indexés sont sensibles à la casse et peuvent contenir un maximum de 128 caractères.
-
La création d'index dans QLDB est asynchrone. Le temps nécessaire à la création d'un index sur une table non vide varie en fonction de la taille de la table. Pour plus d'informations, veuillez consulter Gestion des index.
Syntaxe
CREATE INDEX ON
table_name
(field
)
Paramètres
table_name
-
Nom de la table dans laquelle vous souhaitez créer l'index. La table doit déjà exister.
Le nom de la table est sensible à la casse.
champ
-
Nom du champ du document pour lequel créer l'index. Le champ doit être un attribut de niveau supérieur.
Les noms des champs indexés sont sensibles à la casse et peuvent contenir un maximum de 128 caractères.
Vous pouvez créer un index sur tous les types de données Amazon Ion, y compris
list
etstruct
. Toutefois, vous ne pouvez effectuer la recherche indexée que par égalité de la valeur totale des ions, quel que soit le type d'ion. Par exemple, lorsque vous utilisez unlist
type comme index, vous ne pouvez pas effectuer de recherche indexée par un élément de la liste.
Valeur renvoyée
tableId
— L'ID unique de la table sur laquelle vous avez créé l'index.
Exemples
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)
Exécution par programmation à l'aide du pilote
Pour savoir comment exécuter cette instruction par programmation à l'aide du pilote QLDB, consultez les didacticiels suivants dans la section Prise en main du pilote :