Mejora del rendimiento de escritura con escrituras optimizadas para RDS para MySQL
Puede mejorar el rendimiento de las transacciones de escritura con escrituras optimizadas para RDS para MySQL. Cuando su base de datos de RDS para MySQL utiliza escrituras optimizadas de RDS, puede lograr un rendimiento de transacciones de escritura hasta dos veces mayor.
Temas
Información general de las escrituras optimizadas de RDS
Al activar las escrituras optimizadas de RDS, las bases de datos de RDS para MySQL escriben solo una vez cuando vacían los datos en un almacenamiento duradero sin necesidad de utilizar un búfer de doble escritura. Las bases de datos siguen protegiendo las propiedades de ACID para realizar transacciones de bases de datos fiables, además de mejorar el rendimiento.
Las bases de datos relacionales, como MySQL, proporcionan las propiedades ACID de atomicidad, consistencia, aislamiento y durabilidad para transacciones de bases de datos fiables. Para ayudar a proporcionar estas propiedades, MySQL utiliza un área de almacenamiento de datos denominada búfer de escritura doble que evita errores de escritura parcial de páginas. Estos errores se producen cuando se produce un error de hardware mientras la base de datos actualiza una página, como en el caso de un corte de luz. Una base de datos MySQL puede detectar escrituras parciales de páginas y recuperarlas con una copia de la página en el búfer de doble escritura. Si bien esta técnica proporciona protección, también produce operaciones de escritura adicionales. Para obtener más información sobre el búfer de escritura doble de MySQL, consulte Doublewrite Buffer
Con las escrituras optimizadas de RDS activadas, las bases de datos de RDS para MySQL escriben solo una vez cuando vacían los datos en un almacenamiento duradero sin utilizar el búfer de doble escritura. Las escrituras optimizadas de RDS son útiles si ejecuta cargas de trabajo con muchas escrituras en sus bases de datos de RDS para MySQL. Entre los ejemplos de bases de datos con cargas de trabajo que requieren muchas escrituras, se incluyen las que admiten pagos digitales, operaciones financieras y aplicaciones de juegos.
Estas bases de datos se ejecutan en clases de instancias de base de datos que utilizan el sistema AWS Nitro. Gracias a la configuración del hardware de estos sistemas, la base de datos puede escribir páginas de 16 KiB directamente en archivos de datos de forma fiable y duradera en un solo paso. El sistema AWS Nitro permite las escrituras optimizadas de RDS.
Puede configurar el nuevo parámetro de base de datos rds.optimized_writes
para controlar la característica de escrituras optimizadas para bases de datos RDS para MySQL. Acceda a este parámetro en los grupos de parámetros de base de datos de las versiones 8.0 y 8.4 de RDS para MySQL. Establezca el parámetro con uno de los siguientes valores:
-
AUTO
: activa las escrituras optimizadas de RDS si la base de datos las admite. Desactiva las escrituras optimizadas de RDS si la base de datos no las admite. Esta configuración es la predeterminada. -
OFF
: desactiva las escrituras optimizadas de RDS aunque la base de datos las admita.
Si tiene una base de datos existente con una versión de motor, una clase de instancia de base de datos o un formato de sistema de archivos que no admiten las escrituras optimizadas de RDS, puede habilitar la función creando una implementación azul/verde. Para obtener más información, consulte Habilitar las escrituras optimizadas para RDS en una base de datos existente.
Si migra una base de datos de RDS para MySQL que está configurada para utilizar escrituras optimizadas de RDS en una clase de instancia de base de datos que no admite la característica, RDS desactiva automáticamente las escrituras optimizadas de RDS para la base de datos.
Cuando las escrituras optimizadas de RDS están desactivadas, la base de datos utiliza el búfer de doble escritura de MySQL.
Para determinar si una base de datos de RDS para MySQL utiliza escrituras optimizadas de RDS, consulte el valor actual del parámetro innodb_doublewrite
de la base de datos. Si la base de datos utiliza escrituras optimizadas de RDS, este parámetro se establece en FALSE
(0
).
Uso de escrituras optimizadas de RDS
Puede activar las escrituras optimizadas de RDS al crear una base de datos de RDS para MySQL con la consola de RDS, la AWS CLI o la API de RDS. Las escrituras optimizadas de RDS se activan automáticamente cuando se cumplen las dos condiciones siguientes durante la creación de la base de datos:
-
Debe especificar una clase de instancia de base de datos y una versión de motor de base de datos que admitan escrituras optimizadas de RDS.
-
Las escrituras optimizadas de RDS son compatibles con RDS para MySQL versión 8.0.30 y posteriores. Para obtener más información acerca de las versiones de RDS para MySQL, consulte Versiones de MySQL en Amazon RDS.
-
Las bases de datos RDS para MySQL que utilizan las siguientes clases de instancias de base de datos son compatibles con las escrituras optimizadas de RDS:
-
db.m7i
-
db.m7g
-
db.m6g
-
db.m6gd
-
db.m6i
-
db.m5
-
db.m5d
-
db.r7i
-
db.r7g
-
db.r6g
-
db.r6gd
-
db.r6i
-
db.r5
-
db.r5b
-
db.r5d
-
db.x2idn
-
db.x2iedn
Para obtener información acerca de las clases de instancia de base de datos, consulte Clases de instancia de base de datos de .
La disponibilidad de las clases de instancia de base de datos es diferente en las Regiones de AWS. Para determinar si una clase de instancia de base de datos se admite en una Región de AWS específica, consulte Determinación de la compatibilidad de la clase de instancia de base de datos en Regiones de AWS.
Para actualizar la base de datos a una clase de instancia de base de datos que sea compatible con las escrituras optimizadas de RDS, puede crear una implementación azul/verde. Para obtener más información, consulte Habilitar las escrituras optimizadas para RDS en una base de datos existente.
-
-
-
En el grupo de parámetros asociado a la base de datos, el parámetro
rds.optimized_writes
se establece enAUTO
. En los grupos de parámetros predeterminados, este parámetro siempre se establece enAUTO
.
Si desea utilizar una versión del motor de base de datos y una clase de instancia de base de datos que admita las escrituras optimizadas para RDS, pero no quiere utilizar esta característica, especifique un grupo de parámetros personalizado al crear la base de datos. En este grupo de parámetros, defina el parámetro rds.optimized_writes
en OFF
. Si desea que la base de datos utilice las escrituras optimizadas de RDS más adelante, puede configurar el parámetro AUTO
para activarla. Para obtener información sobre cómo trabajar con grupos de parámetros personalizados y establecer parámetros, consulte Grupos de parámetros para Amazon RDS.
Para obtener información acerca de la creación de una instancia de base de datos, consulte Creación de una instancia de base de datos de Amazon RDS.
Al utilizar la consola de RDS para crear una base de datos de RDS para MySQL, puede filtrar las versiones del motor de base de datos y las clases de instancias de base de datos que admiten las escrituras optimizadas de RDS. Tras activar los filtros, puede elegir entre las clases de instancia de base de datos y las versiones del motor de base de datos disponibles.
Para elegir una versión del motor de base de datos que admita escrituras optimizadas de RDS, filtre las versiones del motor de base de datos de RDS para MySQL que la admitan en Engine version (Versión del motor) y, a continuación, elija una versión.
![La sección Opciones de motor con el filtro Escrituras optimizadas para Amazon RDS activado para Versión del motor.](images/rds-optimized-writes-version-filter.png)
En la sección Instance configuration (Configuración de instancias), filtre las clases de instancias de base de datos que admiten escrituras optimizadas de RDS y, a continuación, elija una clase de instancia de base de datos.
![La sección Configuración de la instancia con el filtro Escrituras optimizadas para Amazon RDS activado para Clase de instancia de base de datos.](images/rds-optimized-writes-class-filter.png)
Tras realizar estas selecciones, puede elegir otras configuraciones que cumplan sus requisitos y terminar de crear la base de datos RDS para MySQL con la consola.
Para crear una instancia de base de datos con la AWS CLI, utilice el comando create-db-instance. Asegúrese de que los valores --engine-version
y --db-instance-class
admitan escrituras optimizadas de RDS. Además, asegúrese de que el grupo de parámetros asociado a la instancia de base de datos tiene el parámetro rds.optimized_writes
configurado en AUTO
. En este ejemplo, se asocia el grupo de parámetros predeterminado con la instancia de base de datos.
ejemplo Creación de una instancia de base de datos que utilice escrituras optimizadas de RDS
Para Linux, macOS o Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --engine mysql \ --engine-version8.0.30
\ --db-instance-classdb.r5b.large
\ --manage-master-user-password \ --master-usernameadmin
\ --allocated-storage200
Para Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --engine mysql ^ --engine-version8.0.30
^ --db-instance-classdb.r5b.large
^ --manage-master-user-password ^ --master-usernameadmin
^ --allocated-storage200
Puede crear una instancia de base de datos mediante la operación CreateDBInstance. Cuando realice esta operación, asegúrese de que los valores EngineVersion
y DBInstanceClass
admitan escrituras optimizadas de RDS. Además, asegúrese de que el grupo de parámetros asociado a la instancia de base de datos tiene el parámetro rds.optimized_writes
configurado en AUTO
.
Habilitar las escrituras optimizadas para RDS en una base de datos existente
Para modificar una base de datos de RDS para MySQL y activar las escrituras optimizadas de RDS, la base de datos debe haberse creado con una versión del motor de base de datos y una clase de instancia de base de datos compatibles. Además, la base de datos debe haberse creado después del lanzamiento de las escrituras optimizadas de RDS del 27 de noviembre de 2022, ya que la configuración del sistema de archivos subyacente requerida es incompatible con la de las bases de datos creadas antes de esa publicación. Si se cumplen estas condiciones, puede activar las escrituras optimizadas para RDS poniendo el parámetro rds.optimized_writes
en AUTO
.
Si la base de datos no se creó con una versión de motor, una clase de instancia o una configuración de sistema de archivos compatibles, puede usar las implementaciones azul/verde de RDS para migrar a una configuración compatible. Al crear la implementación azul/verde, haga lo siguiente:
-
Seleccione Habilitar escrituras optimizadas en base de datos verde y especifique una versión del motor y una clase de instancia de base de datos que admitan escrituras optimizadas de RDS. Para ver una lista de las versiones de motor y las clases de instancias compatibles, consulte Uso de escrituras optimizadas de RDS.
-
En Almacenamiento, seleccione Actualizar la configuración del sistema de archivos de almacenamiento. Esta opción actualiza la base de datos a una configuración de sistema de archivos subyacente compatible.
Al crear la implementación azul/verde, si el parámetro rds.optimized_writes
se ha configurado en AUTO
, las escrituras optimizadas de RDS se habilitarán automáticamente en el entorno verde. A continuación, puede conmutar la implementación azul/verde para que el entorno verde sea el nuevo entorno de producción.
Para obtener más información, consulte Creación de una implementación azul/verde en Amazon RDS.
Limitaciones de las escrituras optimizadas de RDS
Al restaurar una base de datos de RDS para MySQL a partir de una instantánea, solo puede activar las escrituras optimizadas de RDS para la base de datos si se cumplen todas las condiciones siguientes:
-
La instantánea se creó a partir de una base de datos que admite escrituras optimizadas de RDS.
-
La instantánea se ha creado a partir de una base de datos que se creó después del lanzamiento de las escrituras optimizadas para RDS.
-
La instantánea se restaura en una base de datos que admite escrituras optimizadas de RDS.
-
La base de datos restaurada está asociada a un grupo de parámetros que tiene el parámetro
rds.optimized_writes
establecido enAUTO
.