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

Eksekverer MySQL SELECT *-forespørgsel parallelt

MySQL tillader mange forbindelser fra en enkelt bruger eller mange brugere . Inden for den ene forbindelse bruger den højst én CPU-kerne og laver én SQL-sætning ad gangen.

En "transaktion" kan være sammensat af flere SQL-sætninger, mens transaktionen behandles som atomisk. Overvej den klassiske bankapplikation:

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

Disse udsagn udføres serielt (i en enkelt forbindelse); enten lykkes de alle, eller også mislykkes de alle som en enhed ("atomisk").

Hvis du har brug for at gøre ting "parallelt", skal du have en klient (eller klienter), der kan køre flere tråde (eller processer), og få hver på sin egen forbindelse til MySQL.

En mindre undtagelse:Der er nogle ekstra tråde 'under dynen' til at udføre baggrundsopgaver som f.eks. læse-forud eller forsinket skrivning eller flushing-ting. Men det gør ikke give brugeren en måde at "gøre to ting på én gang" i en enkelt forbindelse.

Det, jeg har sagt her, gælder for alle versioner af MySQL/MariaDB og alle klientpakker, der har adgang til dem.




  1. Syntaksfejl på grund af brug af et reserveret ord som et tabel- eller kolonnenavn i MySQL

  2. Hvordan kan jeg opdatere/genåbne en SQLite-database efter gendannelse af den, når jeg bruger en singleton til databasehjælperen

  3. Hvad maskinlæring betyder for databaseprofessionelle

  4. Returner en standardværdi, hvis en enkelt række ikke findes