Mysql
 sql >> Database >  >> RDS >> Mysql

Esecuzione della query MySQL SELECT * in parallelo

MySQL consente molte connessioni da un singolo utente o molti utenti . All'interno di quella connessione, utilizza al massimo un core della CPU ed esegue un'istruzione SQL alla volta.

Una "transazione" può essere composta da più istruzioni SQL mentre la transazione viene trattata come atomicamente. Considera la classica applicazione bancaria:

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

Tali istruzioni vengono eseguite in serie (in un'unica connessione); o tutti hanno successo o tutti falliscono come unità ("atomicamente").

Se hai bisogno di fare le cose in "parallelo", fai in modo che uno o più client possano eseguire più thread (o processi) e che ognuno faccia la propria connessione a MySQL.

Una piccola eccezione:ci sono alcuni thread extra "sotto le coperte" per eseguire attività in background come read-ahead o scrittura ritardata o svuotare le cose. Ma questo non dare all'utente un modo per "fare due cose contemporaneamente" in una singola connessione.

Quello che ho detto qui si applica a tutte le versioni di MySQL/MariaDB ea tutti i pacchetti client che vi accedono.