Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Paralleles Ausführen der MySQL SELECT *-Abfrage

MySQL erlaubt viele Verbindungen von einem einzelnen Benutzer oder viele Benutzer . Innerhalb dieser einen Verbindung verwendet es höchstens einen CPU-Kern und führt jeweils eine SQL-Anweisung aus.

Eine "Transaktion" kann aus mehreren SQL-Anweisungen bestehen, während die Transaktion behandelt wird wie atomar. Betrachten Sie die klassische Bankanwendung:

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

Diese Anweisungen werden seriell (in einer einzigen Verbindung) ausgeführt; entweder alle haben Erfolg oder alle scheitern als Einheit ("atomar").

Wenn Sie Dinge "parallel" erledigen müssen, haben Sie einen Client (oder mehrere Clients), die mehrere Threads (oder Prozesse) ausführen können und von denen jeder seine eigene Verbindung zu MySQL herstellen kann.

Eine kleine Ausnahme:Es gibt einige zusätzliche Threads 'unter der Decke', um Hintergrundaufgaben wie Vorauslesen oder verzögertes Schreiben oder Leeren von Dingen zu erledigen. Aber dies nicht Geben Sie dem Benutzer die Möglichkeit, in einer einzigen Verbindung "zwei Dinge gleichzeitig zu tun".

Was ich hier gesagt habe, gilt für alle Versionen von MySQL/MariaDB und alle Client-Pakete, die darauf zugreifen.