Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exécuter la requête MySQL SELECT * en parallèle

MySQL autorise de nombreuses connexions d'un seul utilisateur ou plusieurs utilisateurs . Au sein de cette connexion, il utilise au plus un cœur de processeur et exécute une instruction SQL à la fois.

Une "transaction" peut être composée de plusieurs instructions SQL pendant que la transaction est traitée comme atomiquement. Prenons l'application bancaire classique :

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

Ces instructions sont exécutées en série (dans une seule connexion) ; soit ils réussissent tous, soit ils échouent tous en tant qu'unité ("atomiquement").

Si vous avez besoin de faire des choses en "parallèle", ayez un client (ou des clients) qui peut exécuter plusieurs threads (ou processus) et chacun établit sa propre connexion à MySQL.

Une exception mineure :il existe des threads supplémentaires "sous les couvertures" pour effectuer des tâches en arrière-plan telles que la lecture anticipée, l'écriture différée ou le vidage. Mais cela n'est pas donner à l'utilisateur un moyen de "faire deux choses à la fois" dans une seule connexion.

Ce que j'ai dit ici s'applique à toutes les versions de MySQL/MariaDB et à tous les packages clients y accédant.