Prestazioni delle query migliorate per RDS per MariaDB con Amazon RDS Optimized Reads - Amazon Relational Database Service

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

Prestazioni delle query migliorate per RDS per MariaDB con Amazon RDS Optimized Reads

Puoi ottenere un'elaborazione delle query per RDS per MariaDB più rapida con Amazon RDS Optimized Reads. Un'istanza database RDS per MariaDB che utilizza RDS Optimized Reads può ottenere un'elaborazione delle query fino a due volte più veloce rispetto a un'istanza database che non lo utilizza.

Panoramica di RDS Optimized Reads

Quando si utilizza un'istanza database RDS per MariaDB con RDS Optimized Reads attivato, l'istanza database ottiene prestazioni di query più rapide tramite l'uso di un archivio dell'istanza. Un archivio istanze fornisce uno storage temporaneo di livello per l’istanza database. L'archiviazione è basata su unità di memoria a stato solido (SSD) NVMe (Non-Volatile Memory Express) fisicamente collegata al server host. Questa archiviazione è ottimizzata per bassa latenza, prestazioni I/O casuali elevate e velocità di trasmissione effettiva di lettura sequenziale elevata.

RDS Optimized Reads è attivato per impostazione predefinita quando un'istanza database utilizza una classe di istanza database con un archivio dell'istanza, ad esempio db.m5d o db.m6gd. Con RDS Optimized Reads, alcuni oggetti temporanei vengono archiviati nell'archivio dell'istanza. Questi oggetti temporanei includono file temporanei interni, tabelle temporanee interne su disco, file di mappe in memoria e file di cache di log binario (binlog). Per ulteriori informazioni sull'archivio dell'istanza, consulta Instance store Amazon EC2 nella Guida per l'utente di Amazon Elastic Compute Cloud per istanze Linux.

I carichi di lavoro che generano gli oggetti temporanei in MariaDB per l'elaborazione delle query possono sfruttare l'archivio dell'istanza per elaborare più rapidamente le query. Questo tipo di carico di lavoro include query che coinvolgono ordinamenti, aggregazioni di hash, join a carico elevato, espressioni di tabella comuni (CTE) e query su colonne non indicizzate. Questi volumi dell'archivio dell'istanza forniscono operazioni IOPS e prestazioni più elevate, indipendentemente dalle configurazioni utilizzate per l'archivio persistente di Amazon EBS. Poiché RDS Optimized Reads trasferisce le operazioni sugli oggetti temporanei all'archivio dell'istanza, le operazioni di input/output al secondo (IOPS) o la velocità di trasmissione effettiva dell'archivio persistente (Amazon EBS) possono ora essere utilizzate per le operazioni su oggetti persistenti. Queste includono le normali operazioni di lettura e scrittura dei file di dati e le operazioni del motore in background, come lo svuotamento e l'unione di inserimenti di buffer.

Nota

Gli snapshot RDS manuali e automatici contengono solo i file del motore per gli oggetti persistenti. Gli oggetti temporanei creati nell'archivio dell'istanza non sono inclusi negli snapshot RDS.

Casi d'uso per RDS Optimized Reads

Se hai carichi di lavoro che si basano pesantemente sugli oggetti temporanei, come tabelle o file interni, per l'esecuzione delle query, puoi trarre vantaggio dall'attivazione di RDS Optimized Reads. I seguenti casi d'uso sono candidati per RDS Optimized Reads:

  • Applicazioni che eseguono query analitiche con espressioni di tabella comuni (CTE) complesse, tabelle derivate e operazioni di raggruppamento

  • Repliche di lettura che generano un intenso traffico di lettura con query non ottimizzate

  • Applicazioni che eseguono query di report on demand o dinamiche che includono operazioni complesse, ad esempio query con le clausole GROUP BY e ORDER BY

  • Carichi di lavoro che utilizzano tabelle temporanee interne per l'elaborazione delle query

    È possibile monitorare la variabile di stato del motore created_tmp_disk_tables per determinare il numero di tabelle temporanee basate su disco create nell'istanza database.

  • Applicazioni che creano tabelle temporanee di grandi dimensioni, direttamente o tramite procedure, per archiviare risultati intermedi

  • Query di database che eseguono il raggruppamento o l'ordinamento di colonne non indicizzate

Best practice per RDS Optimized Reads

Usa le seguenti best practice per RDS Optimized Reads:

  • Aggiungi la logica dei tentativi per le query di sola lettura, nel caso in cui non riescano perché l'archivio dell'istanza è completo durante l'esecuzione.

  • Monitora lo spazio di archiviazione disponibile sull'instance store con la CloudWatch metricaFreeLocalStorage. Se l'archivio dell'istanza sta raggiungendo il limite a causa del carico di lavoro dell'istanza database, modifica l'istanza database in modo da utilizzare una classe di istanza database più grande.

  • Se l'istanza database ha la memoria sufficiente ma raggiunge comunque il limite di archiviazione dell'archivio dell'istanza, aumenta il valore binlog_cache_size per mantenere in memoria le voci binlog specifiche della sessione. Questa configurazione impedisce di scrivere le voci binlog in file di cache binlog temporanei memorizzati su disco.

    Il parametro binlog_cache_size è specifico della sessione. É possibile modificare il valore per ogni nuova sessione. L'impostazione di questo parametro può aumentare l'utilizzo della memoria dell'istanza database durante i picchi di carico di lavoro. Pertanto, è consigliabile aumentare il valore del parametro in base al modello di carico di lavoro dell'applicazione e alla memoria disponibile nell'istanza database.

  • Usa il valore predefinito MIXED per binlog_format. A seconda della dimensione delle transazioni, l'impostazione binlog_format su ROW può comportare la creazione di file di cache binlog di grandi dimensioni nell'archivio dell'istanza.

  • Evita di apportare modifiche in blocco in una singola transazione. Questi tipi di transazioni possono generare file di cache binlog di grandi dimensioni nell'archivio dell'istanza e possono causare problemi quando l'archivio dell'istanza è pieno. Prendi in considerazione la suddivisione delle scritture in transazioni più piccole per ridurre al minimo l'uso dello spazio di archiviazione per i file di cache binlog.

Utilizzo di RDS Optimized Reads

L'istanza database utilizza automaticamente la funzionalità Letture ottimizzate per Amazon RDS quando in un'implementazione di istanza database single-AZ o multi-AZ, effettui il provisioning di un'istanza database RDS per MariaDB con una delle seguenti classi di istanza database.

Per attivare RDS Optimized Reads, procedi in uno dei seguenti modi:

RDS Optimized Reads è disponibile Regioni AWS ovunque siano supportate una o più classi di istanze DB con storage SSD NVMe locale. Per informazioni sulle classi di istanza database, consulta Classi di istanze database.

La disponibilità delle classi di istanze DB è diversa per. Regioni AWS Per determinare se una classe di istanza DB è supportata in una determinata istanza Regione AWS, consultaDeterminazione del supporto delle classi di istanze DB in Regioni AWS.

Se non desideri utilizzare RDS Optimized Reads, modifica l'istanza database in modo che non utilizzi una classe di istanza database che supporti la funzionalità.

Monitoraggio delle istanze database che utilizzano RDS Optimized Reads

È possibile monitorare le istanze DB che utilizzano RDS Optimized Reads con le seguenti metriche: CloudWatch

  • FreeLocalStorage

  • ReadIOPSLocalStorage

  • ReadLatencyLocalStorage

  • ReadThroughputLocalStorage

  • WriteIOPSLocalStorage

  • WriteLatencyLocalStorage

  • WriteThroughputLocalStorage

Queste metriche forniscono dati sullo spazio di archiviazione dell'archivio dell'istanza, sulle operazioni IOPS e sulla velocità di trasmissione effettiva disponibili. Per ulteriori informazioni su questi parametri, consulta Parametri a CloudWatch livello di istanza Amazon per Amazon RDS.

Limitazioni per RDS Optimized Reads

Le seguenti limitazioni si applicano a RDS Optimized Reads:

  • RDS Optimized Reads è supportato nelle seguenti versioni di RDS per MariaDB:

    • 10.11.4 e versioni successive alla 10.11

    • 10.6.7 e versioni successive alla 10.6

    • 10.5.16 e versioni successive alla 10.5

    • 10.4.25 e versioni successive alla 10.4

    Per ulteriori informazioni sulle versioni di RDS per MariaDB, consulta Versioni di MariaDB in Amazon RDS.

  • Non è possibile modificare la posizione degli oggetti temporanei nell'archivio persistente (Amazon EBS) nelle classi di istanza database che supportano RDS Optimized Reads.

  • Quando i log binari sono abilitati su un'istanza database, la dimensione massima della transazione è limitata alla dimensione dell'archivio dell'istanza. In MariaDB, qualsiasi sessione che richiede più spazio di archiviazione rispetto al valore binlog_cache_size scrive le modifiche della transazione nei file di cache binlog temporanei, che vengono creati nell'archivio dell'istanza.

  • Le transazioni possono non riuscire quando l'archivio dell'istanza è pieno.