Utilizzo dei piani Aurora DSQL EXPLAIN - 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à.

Utilizzo dei piani Aurora DSQL EXPLAIN

Aurora DSQL utilizza una struttura del piano EXPLAIN simile a PostgreSQL, ma con aggiunte chiave che riflettono l'architettura distribuita e il modello di esecuzione.

In questa documentazione, forniremo una panoramica dei piani di Aurora DSQL EXPLAIN, evidenziando le somiglianze e le differenze rispetto a PostgreSQL. Tratteremo i vari tipi di operazioni di scansione disponibili in Aurora DSQL e ti aiuteremo a comprendere i costi di esecuzione delle tue query.

Piani EXPLAIN di PostgreSQL VS Aurora DSQL

Aurora DSQL si basa sul database PostgreSQL e condivide la maggior parte delle strutture del piano con PostgreSQL, ma presenta differenze architettoniche chiave che influiscono sull'esecuzione e l'ottimizzazione delle query:

Funzionalità PostgreSQL Aurora DSQL

Storage dei dati

Archiviazione Heap

Nessun heap, tutte le righe sono indicizzate da un identificatore univoco

Chiave primaria

L'indice della chiave primaria è separato dai dati della tabella

L'indice della chiave primaria è la tabella con tutte le colonne aggiuntive come colonne INCLUDE

Indici secondari

Indici secondari standard

Funziona come PostgreSQL, con la possibilità di includere colonne non chiave

Funzionalità di filtraggio

Condizione dell'indice, filtro Heap

Condizione dell'indice, filtro di archiviazione, filtro del processore di query

Tipi di scansione

Scansione sequenziale, scansione dell'indice, scansione solo dell'indice

Scansione completa, scansione solo indice, scansione indice

Esecuzione della query

Locale al database

Distribuito (elaborazione e archiviazione sono separati)

Aurora DSQL archivia i dati della tabella direttamente nell'ordine della chiave primaria anziché in un heap separato. Ogni riga è identificata da una chiave univoca, in genere la chiave primaria, che consente al database di ottimizzare le ricerche in modo più efficiente. La differenza architetturale spiega perché Aurora DSQL utilizza spesso le scansioni Index Only nei casi in cui PostgreSQL potrebbe scegliere una scansione sequenziale.

Un'altra differenza fondamentale è che Aurora DSQL separa l'elaborazione dallo storage, consentendo l'applicazione di filtri nelle fasi iniziali del percorso di esecuzione per ridurre lo spostamento dei dati e migliorare le prestazioni.

Per ulteriori informazioni sull'utilizzo dei piani EXPLAIN con PostgreSQL, consulta la documentazione di PostgreSQL EXPLAIN.

Elementi chiave dei piani Aurora DSQL EXPLAIN

I piani Aurora DSQL EXPLAIN forniscono informazioni dettagliate su come vengono eseguite le query, incluso dove avviene il filtraggio e quali colonne vengono recuperate dallo storage. La comprensione di questo risultato consente di ottimizzare le prestazioni delle query.

Index Cond

Condizioni utilizzate per navigare nell'indice. Filtraggio più efficiente che riduce i dati scansionati. In Aurora DSQL, le condizioni dell'indice possono essere applicate a più livelli del piano di esecuzione.

Proiezioni

Colonne recuperate dalla memorizzazione. Un numero inferiore di proiezioni significa prestazioni migliori.

Filtro di archiviazione

Condizioni applicate a livello di archiviazione. Più efficiente dei filtri del processore di query.

Filtro del processore di query

Condizioni applicate a livello di processore di query. Richiede il trasferimento di tutti i dati prima del filtraggio, il che comporta un maggiore spostamento dei dati e un sovraccarico di elaborazione.

Filtri in Aurora DSQL

Aurora DSQL separa l'elaborazione dallo storage, il che significa che il punto in cui vengono applicati i filtri durante l'esecuzione delle query ha un impatto significativo sulle prestazioni. I filtri applicati prima del trasferimento di grandi volumi di dati riducono la latenza e migliorano l'efficienza. Quanto prima viene applicato un filtro, tanto meno dati devono essere elaborati, spostati e scansionati, con conseguenti query più rapide.

Aurora DSQL può applicare filtri in più fasi del percorso della query. La comprensione di queste fasi è fondamentale per interpretare i piani di interrogazione e ottimizzare le prestazioni.

Livello Tipo di filtro Description
1 Condizione dell'indice

Applicata durante la scansione dell'indice. Limita la quantità di dati letti dallo storage e riduce i dati inviati al livello di elaborazione.

2 Filtro di archiviazione Applicato dopo la lettura dei dati dallo storage ma prima di essere inviati al calcolo. Un esempio qui è un filter su una colonna di inclusione di un indice. Riduce il trasferimento di dati ma non la quantità letta.
3 Filtro Query Processor Applicato dopo che i dati raggiungono il livello di elaborazione. Tutti i dati devono essere trasferiti per primi, il che aumenta la latenza e i costi. Attualmente, Aurora DSQL non è in grado di eseguire tutte le operazioni di filtraggio e proiezione sullo storage, quindi alcune query potrebbero essere costrette a ricorrere a questo tipo di filtro.