sql >> Databáze >  >> RDS >> Mysql

Proč tento výběr příkladu aktualizace funguje?

Myslím, že očekávané chování je trochu mimo. Před potvrzením db_slow jsou všechny řádky v tabulce uzamčeny. Po potvrzení existují dva řádky. db_fast je odblokován při potvrzení db_slow. Chování je tedy:

  1. db_slow:vyberte řádek 1 a uzamkněte jej
  2. db_slow:podívejte se, že je to pouze 1 řádek a počkejte
  3. db_fast:zkuste vybrat řádek 1, uvidíte, že je uzamčen, počkejte
  4. db_slow:vložte řádek s '2'
  5. db_slow:potvrzení
  6. db_fast:odblokováno a čte 2 řádky
  7. db_fast:nic nedělá
  8. Skončíte s foo:1, 2



  1. Skupina MySQL podle pořadí/priority jiného sloupce

  2. Částečný index se nepoužívá v klauzuli ON CONFLICT při provádění upsert v Postgresql

  3. mysql:získat počet záznamů mezi dvěma datum-čas

  4. Jak najít název omezení v Oracle