sql >> Database >  >> RDS >> Mysql

MySQL SELECT *-query parallel uitvoeren

MySQL staat veel verbindingen toe van een enkele gebruiker of veel gebruikers . Binnen die ene verbinding gebruikt het maximaal één CPU-kern en voert het één SQL-statement tegelijk uit.

Een "transactie" kan worden samengesteld uit meerdere SQL-instructies terwijl de transactie wordt behandeld als atomair. Overweeg de klassieke banktoepassing:

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

Die verklaringen worden serieel uitgevoerd (in een enkele verbinding); of ze slagen allemaal of ze falen allemaal als een eenheid ("atomair").

Als u dingen "parallel" moet doen, moet u een client (of clients) hebben die meerdere threads (of processen) kunnen uitvoeren en die elk hun eigen verbinding met MySQL kunnen maken.

Een kleine uitzondering:er zijn wat extra threads 'onder de dekens' voor het uitvoeren van achtergrondtaken zoals read-ahead of vertraagd schrijven of flushing-dingen. Maar dit niet geef de gebruiker een manier om "twee dingen tegelijk te doen" in een enkele verbinding.

Wat ik hier heb gezegd, is van toepassing op alle versies van MySQL/MariaDB en alle clientpakketten die er toegang toe hebben.




  1. Overzicht creëren over verschillende databases

  2. Hoe u de verkoopgegevens van de laatste 3 maanden in MySQL kunt krijgen

  3. Java-kruistabel - query voor opgestelde instructie

  4. Onder welke omstandigheden zou je willen dat Rails wordt ingesteld om NIET opnieuw verbinding te maken met MYSQL