Control de simultaneidad
Escenarios
Puede crear reglas para controlar la ejecución simultánea de sentencias SQL especificando el tipo de SQL, las palabras clave y la simultaneidad máxima. Para mantener un mejor rendimiento en alta concurrencia, no se ejecutarán sentencias SQL que cumplan con el tipo y palabra clave SQL especificados y superen la concurrencia máxima.
La alta simultaneidad de SQL puede deberse a los siguientes factores:
- Un fuerte aumento en las solicitudes: Sentencias SQL simultáneas de un cierto tipo de aumento debido a la penetración de caché e invocaciones anormales.
- Consultas lentas apiladas: Si se invoca a un gran número de sentencias SQL sin índices, se generarán muchas sentencias SQL lentas, lo que afectará a los servicios.
Versiones compatibles
El control de simultaneidad está disponible para las versiones de RDS for MySQL de Tabla 1.
Versión |
Instancia principal |
Réplica de lectura |
Establecer reglas para réplicas de lectura por separado |
---|---|---|---|
5.6 |
≥ 5.6.50-3 |
≥ 5.6.51-6 |
No soportado |
5.7 |
≥ 5.7.31-4 |
≥ 5.7.37-1 |
≥ 5.7.38-221000 |
8.0 |
≥ 8.0.25-1 |
≥ 8.0.25-1 |
No soportado |
En algunas versiones, las reglas de control de simultaneidad no se aplican a las solicitudes enviadas por usuario root. Para obtener más información, consulte Tabla 2.
Versión |
Instancia principal |
---|---|
5.6 |
≥ 5.6.51-4 |
5.7 |
≥ 5.7.33-1 |
8.0 |
≥ 8.0.25-1 |
Para lograr un mejor rendimiento con alta simultaneidad, se recomienda actualizar su instancia de base de datos a la última versión secundaria. Para obtener más información sobre cómo actualizar una versión secundaria, consulte Actualización de una versión secundaria.
Restricciones
- Si una sentencia SQL coincide con varias reglas de control de simultaneidad, sólo se aplica la regla agregada más recientemente.
- Si el retraso de replicación es demasiado largo, la adición o eliminación de una regla de control de simultaneidad para una réplica de lectura no tiene efecto inmediatamente.
- Las reglas de control de simultaneidad no se aplican a las tablas del sistema.
- Las reglas de control de simultaneidad no se aplican a sentencias SQL que no se utilizan para consultas de datos, como select sleep(xxx);.
- Las reglas de control de simultaneidad no se aplican a los procedimientos, activadores o funciones almacenados.
Procedimiento
- Inicie sesión en la consola de gestión.
- Haga clic en en la esquina superior izquierda y seleccione una región y un proyecto.
- Haga clic en en la esquina superior izquierda de la página y seleccione Databases > Relational Database Service.
- En la página Instances, haga clic en el nombre de la instancia de base de datos de destino.
- En el panel de navegación, elija DBA Assistant > Historical Diagnosis.
- Elija SQL Explorer > Concurrency Control.
- Haga clic en Add Rule. Configure los parámetros que aparecen en Tabla 3.
Figura 1 Adición de una regla
Tabla 3 Descripción de parámetro Parámetro
Descripción
SQL Type
Hay tres opciones: SELECT, UPDATE y DELETE.
Keyword
Se admite un máximo de 128 palabras clave (insensibles a mayúsculas y minúsculas). Puede especificar palabras clave de cualquiera de las siguientes maneras:
- Introducir palabras clave: Tomemos a select~a como ejemplo. select y a son dos palabras clave contenidas en una regla de control de simultaneidad. Las palabras clave están separadas por una tilde (~). En este ejemplo, la regla restringe la ejecución de solo las sentencias SQL que contienen las palabras clave select y a.
- Generar palabras clave a partir de una sentencia SQL: Puede introducir una sentencia SQL y, a continuación, hacer clic en Generate Keyword. Las palabras clave generadas son solo para referencia. Tenga cuidado al usarlos.
Las sentencias SQL coinciden con las palabras clave de la primera a la última. Por ejemplo, si una regla contiene la palabra clave a~and~b, la sentencia xxx a>1 and b>2 puede coincidir con la palabra clave, pero xxx b>2 and a>1 no.
Los caracteres vacíos antes y después de cada palabra clave serán ignorados, por ejemplo, espacios, '\n', '\r' y '\t'.
Max. Concurrency
Si el número de sentencias SQL simultáneas que coinciden con la palabra clave excede este límite, las sentencias SQL no se ejecutarán. El valor oscila entre 0 y 1,000,000,000.
Kill existing sessions that match this rule
Al seleccionar esta opción, no se eliminarán las sesiones de conexión del usuario root.
- Confirme la configuración y haga clic en OK.
- Alterne el del interruptor de control de simultaneidad.
Las reglas de control de simultaneidad sólo tienen efecto después de que el control de simultaneidad está habilitado.
Operaciones de seguimiento
Para eliminar una regla de control de simultaneidad, búsquela en la lista de reglas y haga clic en Delete en la columna Operation. En el cuadro de diálogo que se muestra, haga clic en OK.