Prestazioni di scrittura migliorate con Scritture ottimizzate per Amazon RDS per MySQL - 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 di scrittura migliorate con Scritture ottimizzate per Amazon RDS per MySQL

Puoi migliorare le prestazioni delle transazioni di scrittura con Scritture ottimizzate per RDS per MySQL. Quando il database RDS per MySQL utilizza RDS Optimized Writes, può raggiungere una velocità di trasmissione effettiva delle transazioni di scrittura fino a due volte superiore.

Panoramica di RDS Optimized Writes

Quando attivi Scritture ottimizzate per RDS, i database RDS per MySQL scrivono solo una volta, quando trasferiscono i dati nell'archiviazione durevole senza la necessità del buffer di doppia scrittura. I database continuano a fornire le protezioni delle proprietà ACID per le transazioni di database affidabili, insieme alle prestazioni migliorate.

I database relazionali, come MySQL, forniscono le proprietà ACID di atomicità, consistenza, isolamento e durabilità per le transazioni di database affidabili. Per fornire queste proprietà, MySQL utilizza un'area di archiviazione di dati chiamata buffer di doppia scrittura che impedisce gli errori di scrittura parziale della pagina. Questi errori si verificano nel caso di un guasto hardware mentre il database sta aggiornando una pagina, ad esempio in caso di interruzione dell'alimentazione. Un database MySQL può rilevare le scritture parziali della pagina e recuperarle con una copia della pagina nel buffer di doppia scrittura. Sebbene questa tecnica fornisca protezione, comporta anche operazioni di scrittura aggiuntive. Per ulteriori informazioni sul buffer di doppia scrittura MySQL, consulta Doublewrite Buffer (Buffer di doppia scrittura) nella documentazione di MySQL.

Quando attivi RDS Optimized Writes, i database RDS per MySQL scrivono una sola volta, quando trasferiscono i dati nell'archiviazione durevole senza usare il buffer di doppia scrittura. RDS Optimized Writes è utile se esegui carichi di lavoro intensivi in scrittura sui database RDS per MySQL. Esempi di database con carichi di lavoro intensivi in scrittura includono quelli che supportano pagamenti digitali, trading finanziario e applicazioni di gioco.

Questi database vengono eseguiti su classi di istanze DB che utilizzano il sistema AWS Nitro. Grazie alla configurazione hardware di questi sistemi, il database può scrivere pagine da 16 KiB direttamente su file di dati in modo affidabile e durevole in un solo passaggio. Il sistema AWS Nitro rende possibili le scritture ottimizzate per RDS.

Puoi impostare il nuovo parametro di database rds.optimized_writes per controllare la funzionalità RDS Optimized Writes per i database RDS per MySQL. Accedi a questo parametro nei gruppi di parametri database RDS per MySQL versione 8.0. Imposta il parametro su uno dei seguenti valori:

  • AUTO - Attiva RDS Optimized Writes se la funzionalità è supportata dal database. In caso contrario, disattiva RDS Optimized Writes. Questa è l'impostazione di default.

  • OFF - Disattiva RDS Optimized Writes anche la funzionalità è supportata dal database.

Se disponi di un database esistente con una versione del motore, una classe di istanza database e/o un formato del file system che non supporta Scritture ottimizzate per RDS, puoi abilitare la funzionalità creando un'implementazione blu/verde. Per ulteriori informazioni, consulta Abilitazione delle scritture ottimizzate per RDS in un database esistente.

Se si esegue la migrazione di un database RDS per MySQL configurato per utilizzare RDS Optimized Writes in una classe di istanza database che non supporta la funzionalità, RDS disattiva automaticamente RDS Optimized Writes per il database.

Quando la funzionalità RDS Optimized Writes è disattivata, il database utilizza il buffer di doppia scrittura MySQL.

Per determinare se un database RDS per MySQL utilizza RDS Optimized Writes, osserva il valore corrente del parametro innodb_doublewrite per il database. Se il database utilizza RDS Optimized Writes, questo parametro è impostato su FALSE (0).

Utilizzo di RDS Optimized Writes

Puoi attivare RDS Optimized Writes quando crei un database RDS for MySQL con la console RDS, o l'API RDS. AWS CLI La funzionalità RDS Optimized Writes viene attivata automaticamente quando si verificano entrambe le seguenti condizioni durante la creazione del database:

  • Si specificano una versione del motore di database e una classe di istanza database che supportano RDS Optimized Writes.

    • RDS Optimized Writes è supportato per RDS per MySQL versione 8.0.30 e successive. Per ulteriori informazioni sulle versioni di RDS per MySQL, consulta Le mie RDS versioni SQL su Amazon.

    • La funzionalità RDS Optimized Writes è supportata per i database RDS per MySQL che utilizzano le seguenti classi di istanza database:

      • db.m7g

      • db.m6g

      • db.m6gd

      • db.m6i

      • db.m5

      • db.m5d

      • db.r7g

      • db.r6g

      • db.r6gd

      • db.r6i

      • db.r5

      • db.r5b

      • db.r5d

      • db.x2idn

      • db.x2iedn

      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.

      Per aggiornare il database a una classe di istanza database che supporti Scritture ottimizzate per RDS, puoi creare un'implementazione blu/verde. Per ulteriori informazioni, consulta Abilitazione delle scritture ottimizzate per RDS in un database esistente.

  • Nel gruppo di parametri associato al database, il parametro rds.optimized_writes è impostato su AUTO. Nei gruppi di parametri predefiniti, questo parametro è sempre impostato su AUTO.

Se vuoi utilizzare una versione del motore di database e una classe di istanza database che supportino Scritture ottimizzate per Amazon RDS, senza usare questa funzionalità, specifica un gruppo di parametri personalizzato durante la creazione del database. In questo gruppo di parametri, imposta il parametro rds.optimized_writes su OFF. Se si desidera che il database utilizzi RDS Optimized Writes in un secondo momento, è possibile impostare il parametro su AUTO per attivarlo. Per informazioni sull'utilizzo dei gruppi di parametri personalizzati e sull'impostazione dei parametri, consulta Gruppi di parametri per RDS.

Per informazioni sulla creazione di un'istanza database, consulta Creazione di un'istanza Amazon RDS DB.

Quando usi la console RDS per creare un database RDS per MySQL, puoi filtrare le versioni del motore di database e le classi di istanza database che supportano RDS Optimized Writes. Dopo aver attivato i filtri, puoi scegliere tra le versioni del motore di database e le classi di istanza database disponibili.

Per scegliere una versione del motore di database che supporti RDS Optimized Writes, filtra le versioni del motore di database RDS per MySQL che supportano la funzionalità in Engine version (Versione del motore), quindi scegli una versione.

La sezione delle opzioni del motore con il filtro Amazon RDS Optimized Writes attivato per la versione del motore.

Nella sezione Instance configuration (Configurazione dell'istanza), filtra le classi di istanza database che supportano RDS Optimized Writes, quindi scegli una classe di istanza database.

La sezione di configurazione dell'istanza con il filtro Amazon RDS Optimized Writes è stata attivata per la classe di istanze DB.

Dopo aver effettuato queste selezioni, puoi scegliere altre impostazioni che soddisfano i tuoi requisiti e completare la creazione del database RDS per MySQL con la console.

Per creare un'istanza DB utilizzando il AWS CLI, usa il create-db-instancecomando. Assicurati che i valori --engine-version e --db-instance-class supportino RDS Optimized Writes. Inoltre, assicurati che il gruppo di parametri associato all'istanza database abbia il parametro rds.optimized_writes impostato su AUTO. Questo esempio associa il gruppo di parametri predefinito all'istanza database.

Esempio Creazione di un'istanza database che utilizza RDS Optimized Writes

Per LinuxmacOS, oUnix:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mysql \ --engine-version 8.0.30 \ --db-instance-class db.r5b.large \ --manage-master-user-password \ --master-username admin \ --allocated-storage 200

Per Windows:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --engine mysql ^ --engine-version 8.0.30 ^ --db-instance-class db.r5b.large ^ --manage-master-user-password ^ --master-username admin ^ --allocated-storage 200

È possibile creare un'istanza database utilizzando l'operazione CreateDBInstance. Quando utilizzi questa operazione, assicurati che i valori EngineVersion e DBInstanceClass supportino RDS Optimized Writes. Inoltre, assicurati che il gruppo di parametri associato all'istanza database abbia il parametro rds.optimized_writes impostato su AUTO.

Abilitazione delle scritture ottimizzate per RDS in un database esistente

Per modificare un database RDS per MySQL esistente per attivare Scritture ottimizzate per RDS, il database deve essere stato creato con una versione del motore di database e una classe di istanza database supportate. Inoltre, il database deve essere stato creato dopo il rilascio di Scritture ottimizzate per RDS del 27 novembre 2022, poiché la configurazione del file system sottostante richiesta è incompatibile con quella dei database creati prima del rilascio. Se queste condizioni sono soddisfatte, è possibile attivare Scritture ottimizzate per RDS impostando il parametro rds.optimized_writes su AUTO.

Se il database non è stato creato con una versione del motore, una classe di istanza o una configurazione del file system supportate, puoi utilizzare le implementazioni blu/verde di RDS per migrare a una configurazione supportata. Durante la creazione dell'implementazione blu/verde, esegui le seguenti operazioni:

  • Seleziona Abilita le scritture ottimizzate sul database verde, quindi specifica una versione del motore e una classe di istanza database che supportano e scritture ottimizzate RDS. Per l'elenco delle versioni di motore e delle classi di istanza supportate, consulta Utilizzo di RDS Optimized Writes.

  • In Archiviazione scegli Aggiorna la configurazione del file system di archiviazione. Questa opzione aggiorna il database a una configurazione del file system sottostante compatibile.

Se quando crei l'implementazione blu/verde il parametro rds.optimized_writes è impostato su AUTO, Scritture ottimizzate per RDS viene abilitato automaticamente nell'ambiente verde. Quindi puoi eseguire lo switchover all'implementazione blu/verde, che rende l'ambiente verde il nuovo ambiente di produzione.

Per ulteriori informazioni, consulta Creazione di un'implementazione blu/verde.

Limitazioni per RDS Optimized Writes

Quando si ripristina un database RDS per MySQL da uno snapshot, è possibile attivare Scritture ottimizzate per RDS per il database solo se si verificano tutte le seguenti condizioni:

  • Lo snapshot è stato creato da un database che supporta RDS Optimized Writes.

  • Lo snapshot è stato creato da un database creato dopo il rilascio della funzionalità Scritture ottimizzate per Amazon RDS.

  • Lo snapshot è stato ripristinato in un database che supporta RDS Optimized Writes.

  • Il database ripristinato è associato a un gruppo di parametri con il parametro rds.optimized_writes impostato su AUTO.