Ottimizza le prestazioni del database

Last reviewed 2023-08-06 UTC

Questo documento nel framework dell'architettura Google Cloud fornisce suggerimenti per aiutarti a ottimizzare le prestazioni dei tuoi database in Google Cloud.

Cloud SQL

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

Per ulteriori informazioni, consulta la seguente documentazione:

Bigtable

Questa sezione fornisce suggerimenti per ottimizzare le prestazioni delle istanze Bigtable.

Pianifica la capacità in base ai requisiti di prestazioni

Puoi utilizzare Bigtable in una vasta gamma di applicazioni, ognuna con un obiettivo di ottimizzazione diverso. Ad esempio, per i job di elaborazione dati in batch, la velocità effettiva potrebbe essere più importante della latenza. Per un servizio online che soddisfa le richieste degli utenti, potrebbe essere necessario dare priorità alla velocità effettiva inferiore a latenza inferiore. Quando pianifichi la capacità per i tuoi cluster Bigtable, considera i compromessi tra velocità effettiva e latenza. Per maggiori informazioni, consulta Pianificare la capacità di Bigtable.

Seguire le best practice per la progettazione dello schema

Le tabelle possono scalare fino a miliardi di righe e migliaia di colonne, consentendoti di archiviare petabyte di dati. Quando progetti lo schema per le tabelle Bigtable, prendi in considerazione le best practice per la progettazione dello schema.

Monitora il rendimento e apporta le modifiche necessarie

Monitora l'utilizzo di CPU e disco per le tue istanze, analizza le prestazioni di ogni cluster ed esamina i suggerimenti di dimensionamento mostrati nei grafici di monitoraggio.

Spanner

Questa sezione fornisce suggerimenti per ottimizzare le prestazioni delle istanze Spanner.

Scegli una chiave primaria che impedisca un hotspot

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

Segui le best practice per la programmazione SQL

Il compilatore SQL in Spanner converte ogni istruzione SQL dichiarativa che scrivi 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 prestazioni ottimali.

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

Spanner utilizza un ottimizzatore di query SQL per trasformare le istruzioni SQL in piani di esecuzione efficienti delle query. Il piano di esecuzione delle query prodotto dall'ottimizzatore potrebbe variare leggermente con l'evoluzione dello strumento di ottimizzazione delle query o quando le statistiche del database vengono aggiornate. Puoi ridurre al minimo il potenziale di regressione delle prestazioni quando lo strumento di ottimizzazione 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 dei piani di esecuzione delle query utilizzando il visualizzatore dei piani di query.

Utilizza le API Operations per gestire le operazioni a lunga esecuzione

Per determinate chiamate a metodi, Spanner crea operazioni a lunga esecuzione, il cui completamento potrebbe richiedere molto tempo. Ad esempio, quando ripristini 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 le API operative. Per maggiori informazioni, consulta Gestione delle operazioni a lunga esecuzione.

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 la partizionamento, il numero di richieste di scrittura e le dimensioni di ogni richiesta. Per caricare grandi quantità di dati in modo efficiente, 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 sovraccarico può causare latenze di richieste più elevate. Spanner fornisce metriche di utilizzo della CPU per aiutarti a indagare sull'utilizzo elevato della CPU. Per le applicazioni sensibili alle prestazioni, potrebbe essere necessario ridurre l'utilizzo della CPU aumentando la capacità di calcolo.

Analizzare e risolvere i problemi di latenza

Quando un client effettua una chiamata di procedura remota a Spanner, la richiesta API viene prima preparata dalle librerie client. La richiesta passa quindi attraverso il frontend Google e il frontend 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 attraversato dalla richiesta API. Per ulteriori informazioni, consulta la guida alla latenza end-to-end di Spanner.

Avvia le applicazioni dopo che il database ha raggiunto lo stato caldo

Man mano che il tuo database Spanner cresce, divide 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 sezioni in modo indipendente e le assegna a server diversi. Quando le divisioni vengono distribuite tra più server, il database viene considerato in stato caldo. Un database caldo può massimizzare il parallelismo e migliorare le prestazioni. Prima di avviare le applicazioni, ti consigliamo di riavviare il database con i caricamenti dei dati di test.

Passaggi successivi

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