Negli ambienti di produzione in cui Django è in esecuzione su Apache o con più dipendenti di Gunicorn, si corre il rischio di problemi di concorrenza.Come eseguire blocchi di tabella/riga in Django
Come tale, sono stato piuttosto sorpreso di scoprire che l'ORM di Django non supporta esplicitamente il blocco di tabella/riga. Supporta le transazioni molto rapidamente, ma questo risolve solo la metà del problema di concorrenza.
Con un backend MySQL, qual è il modo corretto di eseguire il blocco in Django? O c'è qualcos'altro in gioco nella struttura di Django che li rende non necessari?
Grazie! Le mie scuse, in realtà non mi sono reso conto che continuavo a dire "serrature da tavolo", in altre parole intendevo le serrature in generale come le serrature di fila. I blocchi di riga sono in realtà ciò che sto cercando in questo caso specifico perché, come hai detto, i blocchi dei tavoli sono molto costosi. –
@LukeSapan In questo caso dovresti leggere i livelli di isolamento. Nella maggior parte dei livelli di isolamento, un'istruzione di scrittura in una transazione acquisisce automaticamente un lock 'WRITE' fino alla fine della transazione. – knbk
E per una situazione in cui SELEZIONA prima e poi esegui una o più scritture in base alla riga selezionata? –