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

Concorrenza delle transazioni mysql innodb

Vorrei bloccare solo il record del prodotto (con seleziona per l'aggiornamento - nota, selezionare il blocco in modalità condivisione non impedirà ad altri utenti di acquistare lo stesso prodotto) e quindi eseguire il resto dell'operazione. In questo modo non bloccherò l'acquisto di altri prodotti (mentre il blocco della tabella bloccherà qualsiasi operazione di scrittura, indipendentemente dal fatto che ci siano per il prodotto 1 o il prodotto 2) E perché stai mantenendo la proprietà max_product_can_sell invece di (o non insieme a) available_quantity proprietà?

Dipende dal livello di isolamento. In serializzabile - sì, a livelli inferiori, ne sono quasi certo, no.