sql >> Databasteknik >  >> RDS >> Mysql

Exekver MySQL SELECT *-fråga parallellt

MySQL tillåter många anslutningar från en enda användare eller många användare . Inom den anslutningen använder den högst en CPU-kärna och gör en SQL-sats åt gången.

En "transaktion" kan bestå av flera SQL-satser medan transaktionen behandlas som atomärt. Tänk på den klassiska bankapplikationen:

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

Dessa uttalanden utförs seriellt (i en enda anslutning); antingen lyckas de alla eller så misslyckas de som en enhet ("atomärt").

Om du behöver göra saker "parallellt", ha en klient (eller klienter) som kan köra flera trådar (eller processer) och var och en gör sin egen anslutning till MySQL.

Ett mindre undantag:Det finns några extra trådar "under täcket" för att göra bakgrundsuppgifter som att läsa framåt eller försenat skriva eller spola grejer. Men det gör det inte ge användaren ett sätt att "göra två saker samtidigt" i en enda anslutning.

Det jag har sagt här gäller alla versioner av MySQL/MariaDB och alla klientpaket som kommer åt dem.




  1. PostgreSQL-scheman / namnutrymmen med Django

  2. Returnera ett standardvärde om en rad inte hittas

  3. Hur man släpper en främmande nyckel i SQLite

  4. Uppdatera med parameter med hjälp av room persistent bibliotek