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

Proč commit nezpůsobí uváznutí

Mám podezření, že se jedná o okrajový případ, který nestojí za zefektivnění. Všimněte si, že jste museli absolvovat 3 sezení, abyste se pokusili chytit stejný řádek - což je vzácné. A udělali jste ROLLBACK -- také vzácné. Takže zablokování, ke kterému došlo, je přehnané, ale nestojí za to ho opravovat. Z tohoto důvodu musíme být připraveni zvládnout zablokování všude.

Pro informaci, pokud by se jednalo o 3 uzly clusteru Galera, byly by chyby COMMIT které by kód musel zvládnout. Mám podezření, že se děje ještě více kombinací podivných věcí, pokud tuto transakci (s vrácením zpět nebo potvrzením) použijete vícekrát na více uzlů.

Nyní k vaší otázce... Patrně k uváznutí nedošlo, protože jedno z vláken dostalo výhradní zámek a druhé bylo zasaženo „čekáním“ namísto „zablokování“.




  1. Neplatná výchozí hodnota pro pole časového razítka 'create_date'

  2. Zkontrolovat existenci sloupce/klíče?

  3. Skutečný max_execution_time pro PHP na linuxu

  4. Vytáhněte prvních X slov (nejen znaků) z mySQL