Todos los productos
Search
Centro de documentos

:Prueba de rendimiento de actualización de fila única con alta contención

Última actualización: Sep 03, 2026

Esta página describe la metodología y los resultados de las pruebas de referencia para actualizaciones de datos frecuentes en una sola fila en ApsaraDB RDS for MySQL mediante Inventory Hint. Use estos resultados para comprender el máximo de transacciones por segundo (TPS) alcanzable en escenarios de escritura con alta concurrencia, como deducciones de inventario, actualizaciones de contadores y ventas flash.

Entorno de prueba

Este ejemplo usa dos instancias para la prueba: una instancia de la serie de alta disponibilidad y una instancia de RDS Enterprise Edition. Los tipos de instancia son rds.mysql.st.v52 y mysql.st.12xlarge.25.

  • Versión de MySQL: MySQL 5.7

  • Especificaciones: 90 núcleos, 720 GB (host dedicado)

  • Ediciones de la instancia: serie de alta disponibilidad y RDS Enterprise Edition

  • Tipo de almacenamiento: disco local de alto rendimiento

  • Plantilla: plantilla de parámetros de alto rendimiento

La prueba ejecuta dos instancias en paralelo: una instancia de RDS High-availability Edition y una instancia de RDS Enterprise Edition. Ambas usan la familia de instancias de host dedicado.

Parámetro

Valor

Motor de base de datos

MySQL 5.7

Especificaciones

90 núcleos de CPU, 720 GB de memoria

Tipo de almacenamiento

Premium Local SSD

Plantilla de parámetros

Alto rendimiento

Tipos de instancia

rds.mysql.st.v52 (High-availability Edition), mysql.st.12xlarge.25 (Enterprise Edition)

Datos de prueba

La tabla de prueba contiene 100 filas. Todas las actualizaciones concurrentes se dirigen a una sola fila (id=100), lo que genera un escenario de fila activa con la máxima contención de escritura.

CREATE TABLE `sbtest1`
(
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
,`k` INT(10) UNSIGNED NOT NULL DEFAULT '0'
,`c` CHAR(120) NOT NULL DEFAULT ''
,`pad` CHAR(60) NOT NULL DEFAULT ''
,PRIMARY KEY (`id`)
,KEY `k_1` (`k`)
)
ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT
CHARSET=utf8 MAX_ROWS=1000000

Script de prueba

La prueba ejecuta actualizaciones concurrentes en id=100 mediante la siguiente sentencia SQL:

UPDATE sbtest1 SET k=k+1 WHERE id=100

El siguiente script Lua genera la carga con Sysbench. Cada iteración envuelve la sentencia UPDATE en una transacción y usa Inventory Hint (commit_on_success rollback_on_fail target_affect_row(1)) para reducir la contención de bloqueos y mejorar el rendimiento en operaciones de fila única:

pathtest = string.match(test,"(.*/)")
if pathtest then
 dofile(pathtest .."common.lua")
else
 require("common")
end
function thread_init(thread_id)
 set_vars()
end
function event(thread_id)
 local table_name
 table_name ="sbtest".. sb_rand_uniform(1, oltp_tables_count)
 rs = db_query("begin")
 rs = db_query("update /*+commit_on_success rollback_on_fail target_affect_row(1) */ sbtest1 SET k=k+1 WHERE id=100")
 rs =db_query("commit")
end

Resultados de la prueba

Tipo de instancia

TPS máximo en la fila única

RDS High-availability Edition

12,000

RDS Enterprise Edition

31,000

Figura 1. Resultados de la prueba para RDS Enterprise Edition Test results of the Three-node Enterprise Edition

Pasos siguientes

  • Inventory Hint — Habilite y configure Inventory Hint en su instancia de RDS para alcanzar este nivel de rendimiento en operaciones de fila única.