Ottimizzare le prestazioni del database

Last reviewed 2023-08-06 UTC

Questo documento del Framework dell'architettura Google Cloud fornisce suggerimenti per aiutarti a ottimizzare il rendimento dei tuoi database in Google Cloud.

Cloud SQL

I seguenti consigli ti aiutano a ottimizzare le prestazioni delle tue istanze Cloud SQL che eseguono database SQL Server, MySQL e PostgreSQL.

Per ulteriori informazioni, consulta la seguente documentazione:

Bigtable

Questa sezione fornisce consigli per aiutarti a ottimizzare il rendimento delle tue istanze Bigtable.

Pianifica la capacità in base ai requisiti di prestazioni

Puoi utilizzare Bigtable in un ampio spettro di applicazioni, ciascuna con un obiettivo di ottimizzazione diverso. Ad esempio, per i job di elaborazione batch dei dati, la velocità effettiva potrebbe essere più importante della latenza. Per un servizio online che risponde alle richieste degli utenti, potrebbe essere necessario dare la priorità alla latenza inferiore rispetto al throughput. Quando pianifichi la capacità per i tuoi cluster Bigtable, considera i compromessi tra velocità effettiva e latenza. Per ulteriori informazioni, consulta Pianificare la capacità di Bigtable.

Seguire le best practice per la progettazione dello schema

Le tabelle possono essere scalate fino a miliardi di righe e migliaia di colonne, il che ti consente di memorizzare petabyte di dati. Quando progetti lo schema per le tue tabella Bigtable, tieni presente le best practice per la progettazione dello schema.

Monitora le prestazioni e apporta modifiche

Monitora l'utilizzo della CPU e del disco per le tue istanze, analizza il rendimento di ogni cluster e rivedi i consigli per la scelta delle dimensioni mostrati nei grafici di monitoraggio.

Spanner

Questa sezione fornisce consigli per aiutarti a ottimizzare il rendimento delle tue istanze Spanner.

Scegli una chiave primaria che impedisca un hotspot

Un hotspot è un singolo server che è costretto a gestire molte richieste. Quando scelgo la chiave primaria per il database, segui le best practice per la progettazione dello schema per evitare un hotspot.

Seguire le best practice per la codifica SQL

Il compilatore SQL in Spanner converte ogni istruzione SQL dichiarativa scritta in un piano di esecuzione delle query imperativo. Spanner utilizza il piano di esecuzione per eseguire l'istruzione SQL. Quando crei istruzioni SQL, segui le best practice SQL per assicurarti che Spanner utilizzi piani di esecuzione che offrono un rendimento ottimale.

Utilizzare le opzioni di query per gestire lo strumento di ottimizzazione delle query SQL

Spanner utilizza un ottimizzatore delle query SQL per trasformare le istruzioni SQL in piani di esecuzione delle query efficienti. Il piano di esecuzione delle query prodotto dall'ottimizzatore potrebbe cambiare leggermente quando l'ottimizzatore stesso si evolve o quando le statistiche del database vengono aggiornate. Puoi minimizzare il potenziale di regressione del rendimento quando l'ottimizzatore delle query o le statistiche del database cambiano utilizzando le opzioni di query.

Visualizza e ottimizza la struttura dei piani di esecuzione delle query

Per analizzare i problemi di prestazioni delle query, puoi visualizzare e ottimizzare la struttura degli execution plan delle query utilizzando il visualizzatore del piano query.

Utilizzare le API di operazioni per gestire le operazioni a lunga esecuzione

Per alcune chiamate di metodo, Spanner crea operazioni di lunga durata, che potrebbero richiedere molto tempo per essere completate. Ad esempio, quando ripristina un database, Spanner crea un'operazione a lunga esecuzione per monitorare l'avanzamento del ripristino. Per aiutarti a monitorare e gestire le operazioni a lunga esecuzione, Spanner fornisce API di operazioni. Per ulteriori informazioni, consulta la pagina relativa alla gestione delle operazioni che richiedono molto tempo.

Segui le best practice per il caricamento collettivo

Spanner supporta diverse opzioni per il caricamento collettivo di grandi quantità di dati. Le prestazioni di un'operazione di caricamento collettivo dipendono da fattori quali il partizionamento, il numero di richieste di scrittura e le dimensioni di ogni richiesta. Per caricare in modo efficiente grandi quantità di dati, segui le best practice per il caricamento collettivo.

Monitora e controlla l'utilizzo della CPU

L'utilizzo della CPU dell'istanza Spanner può influire sulle latenze delle richieste. Un server di backend sovraccaricato può causare latenze delle richieste più elevate. Spanner fornisce metriche sull'utilizzo della CPU per aiutarti a esaminare l'utilizzo elevato della CPU. Per le applicazioni sensibili alle prestazioni, potrebbe essere necessario ridurre l'utilizzo della CPU aumentando la capacità di calcolo.

Analizza e risolvi i problemi di latenza

Quando un client esegue una chiamata di procedura remota a Spanner, la richiesta dell'API viene prima preparata dalle librerie client. La richiesta viene poi passata tramite il front-end di Google e il front-end dell'API Cloud Spanner prima di raggiungere il database Spanner. Per analizzare e risolvere i problemi di latenza, devi misurare e analizzare la latenza per ogni segmento del percorso percorso dalla richiesta API. Per ulteriori informazioni, consulta la guida alla latenza end-to-end di Spanner.

Avvia le applicazioni dopo che il database raggiunge lo stato warm

Man mano che il database Spanner cresce, suddivide lo spazio delle chiavi dei dati in split. Ogni suddivisione è un intervallo di righe che contiene un sottoinsieme della tabella. Per bilanciare il carico complessivo sul database, Spanner sposta dinamicamente le singole suddivisioni in modo indipendente e le assegna a server diversi. Quando le suddivisioni sono distribuite su più server, il database è considerato in stato warm. Un database caldo può massimizzare il parallelismo e offrire prestazioni migliori. Prima di lanciare le applicazioni, ti consigliamo di preriscaldare il database con carichi di dati di test.

Passaggi successivi

Consulta le best practice per ottimizzare il rendimento delle risorse di calcolo, archiviazione, networking e analisi: