sql >> Base de Datos >  >> RDS >> Mysql

Ejecutando MySQL SELECT * consulta en paralelo

MySQL permite muchas conexiones de un solo usuario o muchos usuarios . Dentro de esa conexión, utiliza como máximo un núcleo de CPU y realiza una instrucción SQL a la vez.

Una "transacción" puede estar compuesta por múltiples instrucciones SQL mientras la transacción es tratada como atómicamente. Considere la aplicación bancaria clásica:

BEGIN;
UPDATE ...  -- decrement from one user's bank balance.
UPDATE ...  -- increment another user's balance.
COMMIT;

Esas declaraciones se realizan en serie (en una sola conexión); o todos tienen éxito o todos fallan como una unidad ("atómicamente").

Si necesita hacer las cosas en "paralelo", tenga un cliente (o clientes) que puedan ejecutar múltiples subprocesos (o procesos) y que cada uno haga su propia conexión a MySQL.

Una excepción menor:hay algunos subprocesos adicionales 'debajo de las cubiertas' para realizar tareas en segundo plano, como lectura anticipada o escritura retrasada o cosas de vaciado. Pero esto no dar al usuario una forma de "hacer dos cosas a la vez" en una sola conexión.

Lo que he dicho aquí se aplica a todas las versiones de MySQL/MariaDB y todos los paquetes de clientes que acceden a ellos.