Chiavi primarie in Aurora DSQL - Amazon Aurora DSQL

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à.

Chiavi primarie in Aurora DSQL

In Aurora DSQL, una chiave primaria è una funzionalità che organizza fisicamente i dati delle tabelle. È simile all’operazione CLUSTER in PostgreSQL o a un indice cluster in altri database. Quando si definisce una chiave primaria, Aurora DSQL crea un indice che include tutte le colonne della tabella. La struttura a chiave primaria di Aurora DSQL garantisce un accesso e una gestione efficienti dei dati.

Struttura e archiviazione dei dati

Quando si definisce una chiave primaria, Aurora DSQL memorizza i dati della tabella nell’ordine delle chiavi primarie. Questa struttura organizzata a indice consente una ricerca tramite chiave primaria per recuperare direttamente tutti i valori delle colonne, invece di seguire un puntatore ai dati come in un tradizionale indice B-tree. A differenza dell’operazione CLUSTER in PostgreSQL, che riorganizza i dati una sola volta, Aurora DSQL mantiene questo ordine automaticamente e continuamente. Questo approccio migliora le prestazioni delle query che si basano sull’accesso alla chiave primaria.

Aurora DSQL utilizza anche la chiave primaria per generare una chiave unica a livello di cluster per ogni riga di tabelle e indici. Questa chiave unica è anche alla base della gestione distribuita dei dati. Consente il partizionamento automatico dei dati su più nodi, supportando uno storage scalabile e un’elevata concorrenza. Di conseguenza, la struttura a chiave primaria permette ad Aurora DSQL di scalare automaticamente e di gestire i carichi di lavoro simultanei in modo efficiente.

Linee guida per la scelta di una chiave primaria

Quando si sceglie e si utilizza una chiave primaria in Aurora DSQL, bisogna tenere presenti le seguenti linee guida:

  • Definire una chiave primaria quando si crea una tabella. Non è possibile modificare questa chiave né aggiungere una nuova chiave primaria in un secondo momento. La chiave primaria diventa parte della chiave a livello di cluster utilizzata per il partizionamento dei dati e il dimensionamento automatico del throughput di scrittura. Se non si specifica una chiave primaria, Aurora DSQL assegna un ID sintetico nascosto.

  • Per le tabelle con volumi di scrittura elevati, evitare di utilizzare numeri interi che aumentano in modo monotono come chiavi primarie. Ciò può causare problemi di prestazioni se si indirizzano tutti i nuovi inserimenti su un’unica partizione. Utilizzare invece chiavi primarie con distribuzione casuale per garantire una distribuzione uniforme delle scritture tra le partizioni di archiviazione.

  • Per le tabelle che vengono modificate raramente o sono di sola lettura, è possibile utilizzare una chiave crescente. Esempi di chiavi crescenti sono i timestamp o i numeri di sequenza. Una chiave densa contiene molti valori ravvicinati o duplicati. È possibile utilizzare una chiave crescente anche se è densa, poiché le prestazioni di scrittura sono meno importanti.

  • Se una scansione completa della tabella non soddisfa i requisiti di prestazione, scegliere un metodo di accesso più efficiente. Nella maggior parte dei casi, ciò significa utilizzare una chiave primaria che corrisponda alla chiave di join e lookup più comune nelle query.

  • La dimensione massima combinata delle colonne in una chiave primaria è 1 kibibyte. Per maggiori informazioni, consulta Limiti del database in Aurora DSQL e Tipi di dati supportati in Aurora DSQL.

  • È possibile includere fino a 8 colonne in una chiave primaria o in un indice secondario. Per maggiori informazioni, consulta Limiti del database in Aurora DSQL e Tipi di dati supportati in Aurora DSQL.