MySQL umożliwia wiele połączeń od jednego użytkownika lub wielu użytkowników . W ramach tego jednego połączenia używa co najwyżej jednego rdzenia procesora i wykonuje jednorazowo jedno polecenie SQL.
„Transakcja” może składać się z wielu instrukcji SQL, podczas gdy transakcja jest traktowana jak atomowo. Rozważ klasyczną aplikację bankową:
BEGIN;
UPDATE ... -- decrement from one user's bank balance.
UPDATE ... -- increment another user's balance.
COMMIT;
Instrukcje te są wykonywane szeregowo (w jednym połączeniu); albo wszystkim się udaje, albo wszystkie zawodzą jako jednostka ("atomowo").
Jeśli chcesz robić rzeczy „równolegle”, miej klienta (lub klientów), który może uruchamiać wiele wątków (lub procesów) i każdy z nich nawiązuje własne połączenie z MySQL.
Niewielki wyjątek:istnieją dodatkowe wątki „pod okładkami” do wykonywania zadań w tle, takich jak odczyt z wyprzedzeniem, opóźniony zapis lub opróżnianie. Ale to nie dać użytkownikowi możliwość „robienia dwóch rzeczy naraz” w jednym połączeniu.
To, co tutaj powiedziałem, dotyczy wszystkich wersji MySQL/MariaDB i wszystkich pakietów klienckich uzyskujących do nich dostęp.