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

MySQL:Samtidige opdateringer (gennem tråde) på en simpel tabel

Låsningen er implicit, ja, men den udføres ikke af executeUpdate() . Storagemotoren i MySQL håndterer låsningen og oplåsningen.

Hver gang du skriver til en MyISAM-tabel, venter din forespørgsel på, at skrivelåsen på bordet er tilgængelig, skrivelåsen hentes, skrivningen er udført, og skrivelåsen frigives. Der er ingen ægte skrivesammenfald i MyISAM, fordi hver medarbejder faktisk venter i kø på skrivelåsen. Du får ikke en fejl, fordi skriveanmodningerne er serialiseret.

Situationen med InnoDB er ens, men meget anderledes, idet InnoDB kun låser en del af tabellen, typisk på rækkeniveau, hvor InnoDB kan låse et interval inden for et indeks og derved låse rækkerne ved det interval i indekset (og hul, der går forud for dem). Denne låsning er mere detaljeret end bordlåsning, hvilket tillader forbedret samtidighedsadfærd, men der er ingen samtidig handling på den samme række – hver arbejder venter på den eller de låse, den har brug for.

I begge tilfælde er låsene implicit taget.




  1. Hvordan finder jeg en lagret procedure, der indeholder <tekst>?

  2. Får tidsstempel ved hjælp af MySQL

  3. Hvordan CONCAT_WS() virker i PostgreSQL

  4. Er det sikkert at gemme plaintext-adgangskoder i MySQL *midlertidigt*?