sql >> Databasteknik >  >> RDS >> Mysql

Dödläge när du skapar jobbinstanser

Problemet kommer från delat lås. Som standard körs createJobExecution-metoden inom transaktionen med serialiserbar isoleringsnivå. När denna isoleringsnivå används konverterar InnoDB implicit alla vanliga SELECT-satser till SELECT ... LOCK IN SHARE MODE. Därför är JOB_INST_UN låst delad på grund av fråga mot instanstabell. Och sedan, när du infogar jobbinstans, krävs ett exklusivt lås på JOB_INST_UN. Deadlock dök upp om detta unika index var låst delat av en annan transaktion.



  1. SQL:Gör färger från färgtabeller sökbara

  2. Varför är PHPs mysql_-funktioner utfasade?

  3. Hur man ändrar strukturen för jsonb-data som lagras i Postgres

  4. 6 funktioner för att hämta dag, månad och år från ett datum i SQL Server