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à.
Miglioramento delle prestazioni delle query per RDS for My SQL con Amazon RDS Optimized Reads
Puoi ottenere un'elaborazione più rapida delle query per RDS for My SQL con Amazon RDS Optimized Reads. Un'RDSistanza For My SQL DB o un cluster DB Multi-AZ che utilizza RDS Optimized Reads può ottenere un'elaborazione delle query fino a 2 volte più veloce rispetto a un'istanza o un cluster DB che non lo utilizza.
Argomenti
Panoramica delle letture ottimizzate RDS
Quando si utilizza un'istanza RDS for My SQL DB o un cluster DB Multi-AZ con RDS Optimized Reads attivata, si ottengono prestazioni di query più rapide tramite l'uso di un instance store. Un archivio istanze fornisce uno storage temporaneo di livello per l'istanza database o il cluster database multi-AZ. Lo storage si trova su unità a stato solido Non-Volatile Memory Express (NVMe) (SSDs) fisicamente collegate al server host. Questa archiviazione è ottimizzata per bassa latenza, prestazioni I/O casuali elevate e velocità di trasmissione effettiva di lettura sequenziale elevata.
RDSLe letture ottimizzate sono attivate per impostazione predefinita quando un'istanza DB o un cluster DB Multi-AZ utilizza una classe di istanza DB con un instance store, ad esempio db.m5d o db.m6gd. Con RDS Optimized Reads, alcuni oggetti temporanei vengono archiviati nell'instance store. 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'instance store, consulta Amazon EC2 instance store nella Amazon Elastic Compute Cloud User Guide for Linux Instances.
I carichi di lavoro che generano oggetti temporanei in My SQL for query processing possono sfruttare l'instance store per un'elaborazione più rapida delle query. Questo tipo di carico di lavoro include query che coinvolgono ordinamenti, aggregazioni di hash, join con carichi elevati, Common Table Expressions () CTEs e query su colonne non indicizzate. Questi volumi di instance store offrono prestazioni superioriIOPS, indipendentemente dalle configurazioni di storage utilizzate per lo EBS storage persistente di Amazon. Poiché RDS Optimized Reads trasferisce le operazioni sugli oggetti temporanei sull'instance store, le operazioni di input/output al secondo (IOPS) o throughput dello storage persistente (AmazonEBS) possono ora essere utilizzate per 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
Sia le RDS istantanee manuali che quelle automatiche contengono solo i file del motore per oggetti persistenti. Gli oggetti temporanei creati nell'instance store non sono inclusi nelle RDS istantanee.
Casi d'uso per letture RDS ottimizzate
Se hai carichi di lavoro che si basano molto su oggetti temporanei, come tabelle o file interni, per l'esecuzione delle query, puoi trarre vantaggio dall'attivazione delle letture RDS ottimizzate. I seguenti casi d'uso sono candidati per le letture RDS ottimizzate:
-
Applicazioni che eseguono query analitiche con espressioni di tabella comuni complesse (CTEs), 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
eORDER 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
Le migliori pratiche per letture ottimizzate RDS
Utilizza le seguenti best practice per le letture RDS ottimizzate:
-
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 metrica
FreeLocalStorage
. 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 o il cluster database multi-AZ ha memoria sufficiente ma raggiunge comunque il limite di archiviazione dell'archivio dell'istanza, aumentare 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. -
Per le versioni My SQL 8.0 e precedenti, utilizzate il valore predefinito di
MIXED
for thebinlog_format
parameter. A seconda della dimensione delle transazioni, l'impostazionebinlog_format
suROW
può comportare la creazione di file di cache binlog di grandi dimensioni nell'archivio dell'istanza. Per My SQL 8.4 e versioni successive, utilizzate il valore predefinito diROW
per ilbinlog_format
parametro. -
Imposta il parametro internal_tmp_mem_storage_engine
su TempTable
e il parametro temptable_max_mmapin modo che corrisponda alla dimensione dello spazio di archiviazione disponibile 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.
-
Usa il valore predefinito
ABORT_SERVER
per il parametrobinlog_error_action
. In questo modo si evitano problemi con i log binari sulle istanze database con i backup abilitati.
Utilizzo di letture RDS ottimizzate
Quando si esegue il provisioning di un'istanza RDS for My SQL DB con una delle seguenti classi di istanze DB in una distribuzione di istanze DB Single-AZ, in una distribuzione di istanze DB Multi-AZ o in una distribuzione di cluster DB Multi-AZ, l'istanza DB utilizza automaticamente le letture ottimizzate. RDS
Per attivare le letture RDS ottimizzate, effettuate una delle seguenti operazioni:
-
Crea un'istanza RDS for My SQL DB o un cluster DB Multi-AZ utilizzando una di queste classi di istanze DB. Per ulteriori informazioni, consulta Creazione di un'istanza database Amazon RDS.
-
Modifica un'istanza RDS For My SQL DB o un cluster DB Multi-AZ esistente per utilizzare una di queste classi di istanze DB. Per ulteriori informazioni, consulta Modifica di un'istanza Amazon RDS DB.
RDSOptimized Reads è disponibile Regioni AWS RDS ovunque siano supportate una o più classi di istanze DB con NVMe SSD archiviazione locale. Per informazioni sulle classi di istanza database, consulta Classi di istanze DB .
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 della classe di istanze DB in Regioni AWS.
Se non desideri utilizzare RDS Optimized Reads, modifica l'istanza DB o il cluster DB Multi-AZ in modo che non utilizzi una classe di istanza DB che supporti la funzionalità.
Monitoraggio delle istanze DB che utilizzano Optimized Reads RDS
È 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 storage e sul throughput disponibili nell'Instance Store. IOPS Per ulteriori informazioni su questi parametri, consulta Parametri a CloudWatch livello di istanza Amazon per Amazon RDS.
Limitazioni per le letture ottimizzate RDS
Le seguenti limitazioni si applicano alle letture RDS ottimizzate:
-
RDSOptimized Reads è supportato per le seguenti versioni:
-
RDSper la mia SQL versione 8.0.28 e successive versioni principali e secondarie
Per informazioni su RDS for My SQL versions, consulta. Versioni di MySQL in Amazon RDS
-
-
Non è possibile modificare la posizione degli oggetti temporanei in storage persistente (AmazonEBS) nelle classi di istanze DB che supportano le letture RDS ottimizzate.
-
Quando i log binari sono abilitati su un'istanza database, la dimensione massima della transazione è limitata alla dimensione dell'archivio dell'istanza. In MySQL, qualsiasi sessione che richiede più spazio di archiviazione rispetto al valore della transazione di
binlog_cache_size
scrittura viene modificata nei file di cache binlog temporanei, che vengono creati nell'instance store. -
Le transazioni possono non riuscire quando l'archivio dell'istanza è pieno.